插入后的延迟加载属性

use*_*292 4 entity-framework

我有一个父对象和子对象.如果我做以下事情

Child c = new Child();

c.ParentID = parentID;
context.Child.Add(c);
context.SaveChanges();

int i = c.Parent.ParentID; // throws an exception b/c Parent is null
Run Code Online (Sandbox Code Playgroud)

这是为什么这样做的?如果我得到一个新的上下文(保存后),我可以看到Parent就好了.

Sla*_*uma 9

我猜你正在使用延迟加载.如果您希望在将具有外键属性的对象添加到上下文后填充导航属性,则必须使用Create方法DbSet(而不是使用实例化对象new):

Child c = context.Child.Create();
Run Code Online (Sandbox Code Playgroud)

使用活动延迟加载,这将创建一个代理对象,以确保加载导航属性.