分离新对象后重新加载导航属性
我将实体框架与 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);
有没有什么方法可以让导航属性延迟加载,而不必手动加载其中的每一个?
如果我检索现有对象而不是创建新对象,则不会出现问题:分离时子集合会变空;但重新连接后,孩子们会自动延迟加载。
I am using Entity Framework with POCO objects and have the following scenario:
I create a new parent object and add a child object to it. Then I save changes and detach the parent object. At this moment its children collection gets empty.
parent = new Parent() { label = "Test" };
parent.Children.Add(new Child() { label = "Test" });
context.Parents.AddObject(parent);
context.SaveChanges();
context.Detach(parent);
When I reattach the parent object to a different context, I have to explicitly load the corresponding property to access the children collection.
context.Parents.Attach(parent);
context.LoadProperty(parent, p => p.Children);
Is there any way for the navigation properties to lazy load instead of having to load manually every one of them?
If instead of creating a new object, I retrieve an existing object, the problem does not occur: the children collection gets empty when detached; but after reattaching, the children are lazy loaded automatically.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
而不是:
尝试使用:
Instead of:
Try to use: