我有一个有趣的问题:我创建了一个名为“Container”的类,它有一个“Contained”类型的成员它看起来像:
public class Container
{
public Contained cnt{ get; set; }
}
该模型包含两个表,我的数据库看起来像: Containers(PK:id FK:Contained_ContainedId) Contained(PK:ContainedId)
EF Code first 正确地将此属性映射为 Contined 表中的外键。当我想使用 LINQ 检索这些对象时,问题就来了:
Container Con=(from Object in PersistentManager.Containers.OfType<Container> select Object).SingleOrDefault();
这样(或强制转换匿名类型),我得到一个容器。问题是,对 Contained 对象的引用始终为空。我认为这是为了性能而故意这样做的,但是,这一次,我需要它来恢复完整的对象。Intellitrace 显示它甚至没有加入表格,所以我想应该指定其他东西有什么想法吗?
Allrigth,感谢 Basic,我已经使用 include 子句解决了这个问题。我认为应该有一种在上下文封闭环境中使用延迟加载的方法(多层模式总是建议处理这些对象)