分离新对象后重新加载导航属性

时间:2011-03-29 12:10:16

标签: entity-framework lazy-loading poco

我正在使用带有POCO对象的Entity Framework,并且具有以下场景:

我创建一个新的父对象并向其添加一个子对象。然后我保存更改并分离父对象。此时它的儿童收藏品变空了。

parent = new Parent() { label = "Test" };
parent.Children.Add(new Child() { label = "Test" });
context.Parents.AddObject(parent);
context.SaveChanges();
context.Detach(parent);

当我将父对象重新附加到不同的上下文时,我必须显式加载相应的属性才能访问子集合。

context.Parents.Attach(parent);
context.LoadProperty(parent, p => p.Children);

导航属性是否有任何方法可以延迟加载,而不必手动加载每个导航属性?

如果不是创建新对象,而是检索现有对象,则不会发生问题:子集合在分离时变为空;但是在重新连接之后,孩子们会自动延迟加载。

1 个答案:

答案 0 :(得分:3)

而不是:

parent = new Parent() { label = "Test" };

尝试使用:

parent = context.CreateObject<Parent>();
parent.label = "Test";