关于 MVC 中 EF 外键处理的一个小坑
使用 CodeFirst 进行建模。例如,已有以下实体,在MVC中是启用延迟加载的。
public class User { public int Id { get; set; } public string Name { get; set; } } public class Post { public int Id { get; set; } public User Author { get; set; } }
如果直接使用下面的语法进行查询的话,如果对应的`User`没有被EF引擎加载,那么导航属性`Post.Author`会是`null`。
context.Posts.ToArray();
解决方法是,显式说明需要在返回的`Post`中加载`Author`导航属性的内容。
using System.Data.Entity; //... context.Posts.Include(p => p.Author).ToArray();