Entity framework 分离新对象后重新加载导航属性
我将实体框架与POCO对象一起使用,并有以下场景: 我创建了一个新的父对象,并向其中添加了一个子对象。然后保存更改并拆离父对象。此时,它的子集合变为空Entity framework 分离新对象后重新加载导航属性,entity-framework,lazy-loading,poco,Entity Framework,Lazy Loading,Poco,我将实体框架与POCO对象一起使用,并有以下场景: 我创建了一个新的父对象,并向其中添加了一个子对象。然后保存更改并拆离父对象。此时,它的子集合变为空 parent = new Parent() { label = "Test" }; parent.Children.Add(new Child() { label = "Test" }); context.Parents.AddObject(parent); context.SaveChanges(); context.Detach(parent
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);
有没有办法让导航属性延迟加载,而不必手动加载它们中的每一个
如果我没有创建一个新对象,而是检索一个现有对象,那么问题就不会发生:分离时,子集合将变为空;但在重新连接后,子项将自动延迟加载。而不是:
parent = new Parent() { label = "Test" };
尝试使用:
parent = context.CreateObject<Parent>();
parent.label = "Test";
parent=context.CreateObject();
parent.label=“测试”;
@ladislav mrnka很有魅力,谢谢。是否有其他情况需要CreateObject来进行正确操作而不是新建?@Damir-CreateObject
创建父对象的代理实例。延迟加载或更改跟踪的一种方法需要代理。