c# - 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);
解决方案
推荐阅读
- python - 如何使用 discord.py 让不和谐机器人上线?
- vue.js - Vuex:为什么只在调度页面刷新时才更新商店?
- ruby-on-rails - has_many, has_one 与复合外键的关联
- django - Django - 如何对未知数量的值进行 OR 查询
- c - 睡觉的理发师 - 共享内存队列不起作用?
- javascript - 检测字符串中的所有字符是否都是阿拉伯语
- php - PHP 变量在 HTML 标记之外转义
- java - 静态方法或空构造函数
- python - 这是什么意思'泛型类型的参数必须是类型'?
- python - 使用 pygame.mixer 播放某些音频文件时出错