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

发布于 2024-10-27 07:58:56 字数 553 浏览 1 评论 0原文

我将实体框架与 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

长伴 2024-11-03 07:58:56

而不是:

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

尝试使用:

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

Instead of:

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

Try to use:

parent = context.CreateObject<Parent>();
parent.label = "Test";
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文