我有一个非常简单的例子:
这会生成这些简单的类:
但是,当我访问从数据库中读取的任何User对象的属性Cities时,它总是设置为null。我认为实体框架会填补该财产。我对吗?我做错了什么?
感谢。
编辑:就像我注意到的那样,我使用3.5而不是4(看起来有一些关键的区别)答案 0 :(得分:2)
我认为您正在寻找Include方法
context.Users.Include("Cities")
答案 1 :(得分:1)
默认情况下,EF使用Lazy Loading,以避免映射整个参照完整性图(假设您在Cities
表下有更多表 - 它会使底层SQL查询极其庞大并包含很多JOIN)。
因此,您需要明确包含要包含的子实体,然后在后台进行JOIN。在查询用户(或.Include("Cities")
之后的任何查询子集)后调用Users.Where(...)
。
答案 2 :(得分:0)
有趣的是,您获得的是null,而不是包含0个条目的列表。
因此,我认为这是模型定义的问题,而不是延迟加载或包含问题。
尝试生成新模型。