我正在使用带有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);
导航属性是否有任何方法可以延迟加载,而不必手动加载每个导航属性?
如果不是创建新对象,而是检索现有对象,则不会发生问题:子集合在分离时变为空;但是在重新连接之后,孩子们会自动延迟加载。
答案 0 :(得分:3)
而不是:
parent = new Parent() { label = "Test" };
尝试使用:
parent = context.CreateObject<Parent>();
parent.label = "Test";