Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 分离新对象后重新加载导航属性_Entity Framework_Lazy Loading_Poco - Fatal编程技术网

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

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

我将实体框架与POCO对象一起使用,并有以下场景:

我创建了一个新的父对象,并向其中添加了一个子对象。然后保存更改并拆离父对象。此时,它的子集合变为空

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
创建父对象的代理实例。延迟加载或更改跟踪的一种方法需要代理。