初始化和检索之间的值会丢失

时间:2014-04-17 22:02:03

标签: c# asp.net-mvc-4 lambda

(使用Identity Framework在Visual Studio 12上的ASP.NET MVC4)
拜托,我希望有人可以向我解释一下 这是第二种情况。第一个是在编辑1

下描述的

我遇到了一个奇怪的情况。

编辑2(新)

在我的初始化文件中,在完成所有初始化之后,在将更改提交到DataContext之前,每个Student对象的Courses.Count()大于0,即54

bob.Courses.Count();
mary.Courses.Count();
wei.Courses.Count();
john.Courses.Count();
jack.Courses.Count();
jill.Courses.Count();

dc.SaveChanges();

但是,稍后,当我试图像这样查询它们时......

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 coursesCount = st.Courses.Count();正在返回0
我不知道为什么。这些价值会在两者之间丢失吗?


编辑1

我通过对值进行硬编码来初始化我的Course对象 在我调试时,我可以看到Course对象中的所有字段都有值,没有值null。 的然而下,
当我这样查询时:

var courses = dc.Courses.ToList().Where(course => course.User.Id ==currentUserId);
                                                  *

并调试,我看到其中一个字段突然null 看起来这个值在初始化和检索之间的某处丢失了! 有没有人遇到过这个?

告诉我你是否需要查看更多代码。

0 个答案:

没有答案