首页 > 解决方案 > NullReferenceException:如何找到空值

问题描述

我收到以下错误。

NullReferenceException:对象引用未设置为对象的实例。

我认为这意味着应该有一个空对象。但是我检查了数据库,找不到任何问题。是否可以通过使用堆栈跟踪来读取问题的出处?

它在我自己的数据库上本地工作,但是在使用公共数据库时,我收到了这个错误。

堆栈跟踪:

<code>[NullReferenceException: Object reference not set to an instance of an object.]
   HolidayTracker.Controllers.<>c.<GetUserInShift>b__2_2(Employee e) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:771
   System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) +88
   System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) +137
   System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) +21
   System.Linq.<GetEnumerator>d__1.MoveNext() +221
   System.Linq.WhereEnumerableIterator`1.MoveNext() +170
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +387
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   HolidayTracker.Controllers.CalendarController.GetUserInShift(String searchName, String searchSite, String searchArea, String searchDiscipline, String searchShift, Shift shift) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:769
   HolidayTracker.Controllers.CalendarController.Index(String searchName, String searchArea, String searchDiscipline, Nullable`1 year, Nullable`1 month, String acc, String searchSite, String searchShift) in C:\Projects\HolidayTrackerFinal\ESS\HolidayTracker\Controllers\CalendarController.cs:102
   lambda_method(Closure , ControllerBase , Object[] ) +415
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +14
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +169
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
   System.Web.Mvc.Async.<>c.<BeginInvokeSynchronousActionMethod>b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +22
   System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +32
   System.Web.Mvc.Async.<>c__DisplayClass11_0.<InvokeActionMethodFilterAsynchronouslyRecursive>b__0() +58
   System.Web.Mvc.Async.<>c__DisplayClass11_2.<InvokeActionMethodFilterAsynchronouslyRecursive>b__2() +228
   System.Web.Mvc.Async.<>c__DisplayClass7_0.<BeginInvokeActionMethodWithFilters>b__1(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +34
   System.Web.Mvc.Async.<>c__DisplayClass3_6.<BeginInvokeAction>b__4() +35
   System.Web.Mvc.Async.<>c__DisplayClass3_1.<BeginInvokeAction>b__1(IAsyncResult asyncResult) +100
   System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +27
   System.Web.Mvc.<>c.<BeginExecuteCore>b__152_1(IAsyncResult asyncResult, ExecuteCoreState innerState) +11
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +45
   System.Web.Mvc.<>c.<BeginExecute>b__151_2(IAsyncResult asyncResult, Controller controller) +13
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +26
   System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
   System.Web.Mvc.<>c.<BeginProcessRequest>b__20_1(IAsyncResult asyncResult, ProcessRequestState innerState) +28
   System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
   System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9874041
   System.Web.<>c__DisplayClass285_0.<ExecuteStepImpl>b__0() +26
   System.Web.StepInvoker.Invoke(Action executionStep) +101
   System.Web.<>c__DisplayClass4_0.<Invoke>b__0() +22
   Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule.OnExecuteRequestStep(HttpContextBase context, Action step) +64
   System.Web.<>c__DisplayClass284_0.<OnExecuteRequestStep>b__0(Action nextStepAction) +54
   System.Web.StepInvoker.Invoke(Action executionStep) +85
   System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +9980101
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +159
</code> 

这是导致异常的行

   private static List<Employee> GetUserInShift(string searchName, string searchSite, string searchArea, string searchDiscipline,string searchShift, Shift shift)
    {


                return

                shift.Employees.Where(e => e.ActiveStatus == "Yes").OrderBy(e => e.Area.Area1).ThenBy(e => e.Discipline.Discipline1).ThenBy(e => e.FullName).Where(e => (e.Site.SiteName == searchSite || searchSite == null || searchSite == "")
                && (e.Area.Area1 == searchArea || searchArea == null || searchArea == "")
                && (e.FullName == searchName || searchName == null || searchName == "")
                && (e.Shift.Shift1 == searchShift || searchShift == null || searchShift == "")
                && (e.Discipline.Discipline1 == searchDiscipline || searchDiscipline == null || searchDiscipline == ""))
                .ToList();

        }

这是对象:

  List<Employee> userInThisShifts = GetUserInShift(searchName,searchSite, searchArea, searchDiscipline, searchShift, shift);

标签: c#asp.net-mvcnullreferenceexception

解决方案


推荐阅读