Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 值在初始化和检索之间丢失_C#_Asp.net Mvc 4_Lambda - Fatal编程技术网

C# 值在初始化和检索之间丢失

C# 值在初始化和检索之间丢失,c#,asp.net-mvc-4,lambda,C#,Asp.net Mvc 4,Lambda,使用Identity Framework在Visual Studio 12上运行ASP.NET MVC4 拜托,我希望有人能给我解释一下。 这是第二个案例。第一个在编辑1中描述 我遇到了一个奇怪的情况 编辑2新 在我的初始化文件中,在完成所有初始化之后并在提交对DataContext的更改之前,每个Student对象都有课程。计数大于0,即5或4 然而,过了一会儿,当我试图这样询问他们时 var studentsCount = dc.Students.Count(); foreach (var

使用Identity Framework在Visual Studio 12上运行ASP.NET MVC4 拜托,我希望有人能给我解释一下。 这是第二个案例。第一个在编辑1中描述

我遇到了一个奇怪的情况

编辑2新 在我的初始化文件中,在完成所有初始化之后并在提交对DataContext的更改之前,每个Student对象都有课程。计数大于0,即5或4

然而,过了一会儿,当我试图这样询问他们时

var studentsCount = dc.Students.Count();
foreach (var st in dc.Students.ToList()) {
   var coursesCount = st.Courses.Count(); // THIS LINE!!!
   foreach (var crs in st.Courses.ToList()) {
       if (crs.CourseId == cancellation.CourseBase.CourseId) {
           var user = manager.FindByName(st.UserName);
           cancellation.Users.Add(user);
       }
   }
}
…行var coursescont=st.Courses.Count;正在返回0! 我不知道为什么。这些值是否在两者之间的某个地方丢失了

编辑1 我通过硬编码值来初始化课程对象。 调试时,我可以看到Course对象中的所有字段都有值,并且没有值为null。 然而 当我这样询问时:

var courses = dc.Courses.ToList().Where(course => course.User.Id ==currentUserId);
                                                  *
调试时,我看到其中一个字段突然为空。 看起来值在初始化和检索之间的某个地方丢失了! 以前有人见过这个吗


如果您需要查看更多代码,请告诉我。

请注意,dc.Courses.ToList.Wherecourse=>course.User.Id==currentUserId在您的服务器上将非常困难。改为执行dc.Courses.Wherecourse=>Courses.User.Id==currentUserId.ToList,这样将只从服务器获取所需的记录,而不是获取所有记录,然后丢弃您不需要的结果。非常感谢!我现在正在尝试
var courses = dc.Courses.ToList().Where(course => course.User.Id ==currentUserId);
                                                  *