ASP.NET MVC4 lambda表达式错误-对象引用未设置为对象的实例
我在第146行一直看到这个错误。如果有人能向我解释这个错误,我将不胜感激ASP.NET MVC4 lambda表达式错误-对象引用未设置为对象的实例,asp.net,asp.net-mvc,asp.net-mvc-4,lambda,object-reference,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Lambda,Object Reference,我在第146行一直看到这个错误。如果有人能向我解释这个错误,我将不胜感激 “/”应用程序中出现服务器错误。 对象引用未设置为对象的实例 说明:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例 源错误: Line 144: var courses = dc.Courses.ToList(). Line 145:
“/”应用程序中出现服务器错误。 对象引用未设置为对象的实例 说明:执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 异常详细信息:System.NullReferenceException:对象引用未设置为对象的实例 源错误:
Line 144: var courses = dc.Courses.ToList().
Line 145: Where(course =>
Line 146: course. <------??????
Line 147: User.
Line 148: Id ==
Line 149: currentUserId);
[NullReferenceException: Object reference not set to an instance of an object.]
igoryen.ViewModels.<>c__DisplayClassb.<getListOfCourseBaseAM>b__a(Course course) in c:\aaa\vat\c#\proj\igoryen\igoryen\ViewModels\Repo_Course.cs:146
System.Linq.WhereListIterator`1.MoveNext() +56
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +381
System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
AutoMapper.Mappers.EnumerableMapperBase`1.Map(ResolutionContext context, IMappingEngineRunner mapper) +273
AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) +838
[AutoMapperMappingException:
Mapping types:
WhereListIterator`1 -> IEnumerable`1
System.Linq.Enumerable+WhereListIterator`1[[igoryen.Models.Course, igoryen, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]] -> System.Collections.Generic.IEnumerable`1[[igoryen.ViewModels.CourseBase, igoryen, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]
Destination path:
IEnumerable`1
Source value:
System.Linq.Enumerable+WhereListIterator`1[igoryen.Models.Course]]
AutoMapper.MappingEngine.AutoMapper.IMappingEngineRunner.Map(ResolutionContext context) +936
AutoMapper.MappingEngine.Map(Object source, Type sourceType, Type destinationType, Action`1 opts) +196
AutoMapper.MappingEngine.Map(Object source, Action`1 opts) +172
AutoMapper.MappingEngine.Map(Object source) +121
AutoMapper.Mapper.Map(Object source) +107
igoryen.ViewModels.Repo_Course.getListOfCourseBaseAM(String currentUserId) in c:\aaa\vat\c#\proj\igoryen\igoryen\ViewModels\Repo_Course.cs:151
igoryen.ViewModels.Repo_Course.getSelectListOfCourse(String currentUserId) in c:\aaa\vat\c#\proj\igoryen\igoryen\ViewModels\Repo_Course.cs:136
igoryen.Controllers.CancellationsController.Create() in c:\aaa\vat\c#\proj\igoryen\igoryen\Controllers\CancellationsController.cs:50
lambda_method(Closure , ControllerBase , Object[] ) +101
System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +59
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +435
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +60
System.Web.Mvc.Async.ActionInvocation.InvokeSynchronousActionMethod() +76
System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState) +36
System.Web.Mvc.Async.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult) +73
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +136
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +102
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +49
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3c() +117
System.Web.Mvc.Async.<>c__DisplayClass45.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3e() +323
System.Web.Mvc.Async.<>c__DisplayClass30.<BeginInvokeActionMethodWithFilters>b__2f(IAsyncResult asyncResult) +44
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +47
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +136
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +102
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +50
System.Web.Mvc.Async.<>c__DisplayClass28.<BeginInvokeAction>b__19() +72
System.Web.Mvc.Async.<>c__DisplayClass1e.<BeginInvokeAction>b__1b(IAsyncResult asyncResult) +185
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +133
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +56
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +40
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +34
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +44
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +39
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +62
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +39
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__4(IAsyncResult asyncResult, ProcessRequestState innerState) +39
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +70
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +139
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +59
System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult, Object tag) +40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +40
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9514928
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
更新2 不幸的是,我不能在这里发布屏幕截图,但我正在使用断点进行调试,没有看到任何
User
值为null
更新3 我有以下文件:
其中我初始化了所有列表/表格李>Models/Initializer.cs
其中我有执行查询的方法(返回错误)李>ViewModels/Repo_Course.cs
当我调试断点时,我看到:
- 在
中,当Models/Initializer.cs
初始化时,课程
有一个值且不为用户
李>null
- 但是在
第146行(如上所示),ViewModels/Repo_Course.cs
为用户
!为什么空
更新4
UserPeter
属于ApplicationUser
类型:
var UserPeter = new ApplicationUser();
string userPw8 = "123456";
var userInfo8 = new MyUserInfo() { FirstName = "Peter", LastName = "Peterson" };
UserPeter.UserName = "Peter";
UserPeter.HomeTown = "Toronto";
UserPeter.MyUserInfo = userInfo8;
var UserPeterCreate = UserManager.Create(UserPeter, userPw8);
if (UserPeterCreate.Succeeded) {
var addUserPeterToRole3Result = UserManager.AddToRole(UserPeter.Id, roleName3);
}
应用程序用户
类,它源自标识用户
:
public class ApplicationUser : IdentityUser {
//[Key]
//public int Id { get; set; }
public string HomeTown { get; set; }
//public virtual ICollection<Cancellation> Cancellations { get; set; }
//public virtual ICollection<Course> Courses { get; set; }
public virtual MyUserInfo MyUserInfo { get; set; }
}
IdentityUser
类(来自元数据):
您的用户对象列表中的一个值为空。如果第146行进行空访问,则您的
课程
列表更可能包含空
值,而不是有空
用户的课程。谢谢您的反馈!你能看看我的编辑2吗?这是我的问题。谢谢,安德鲁·刘易斯!你能看一下我的编辑3吗?在这种情况下,你可能想发布更多的源代码,例如UserPeter
的实际定义和课程
类的User
成员。非常感谢你的输入。你能看看我的更新4吗?可能是
public class ApplicationUser : IdentityUser {
//[Key]
//public int Id { get; set; }
public string HomeTown { get; set; }
//public virtual ICollection<Cancellation> Cancellations { get; set; }
//public virtual ICollection<Course> Courses { get; set; }
public virtual MyUserInfo MyUserInfo { get; set; }
}
public class MyUserInfo {
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class IdentityUser : IUser {
public IdentityUser();
public IdentityUser(string userName);
public virtual ICollection<IdentityUserClaim> Claims { get; }
public virtual string Id { get; set; }
public virtual ICollection<IdentityUserLogin> Logins { get; }
public virtual string PasswordHash { get; set; }
public virtual ICollection<IdentityUserRole> Roles { get; }
public virtual string SecurityStamp { get; set; }
public virtual string UserName { get; set; }
}
public class Course { // 10
public Course() {
this.Faculty = new Faculty();
this.Students = new List<Student>();
}
[Key]
public int CourseId { get; set; }
public string CourseCode { get; set; }
public string CourseName { get; set; }
public string RoomNumber { get; set; }
public string RunTime { get; set; }
public Faculty Faculty { get; set; }
public List<Student> Students { get; set; }
public virtual ApplicationUser User { get; set; }
}