首页 > 后端开发 > C++ > 实体框架 4:何时使用 `AttachObject` 与 `AddObject`?

实体框架 4:何时使用 `AttachObject` 与 `AddObject`?

Mary-Kate Olsen
发布: 2025-01-10 14:02:42
原创
428 人浏览过

Entity Framework 4: When to Use `AttachObject` vs. `AddObject`?

实体框架 4:掌握 AddObjectAttach

实体框架的有效使用取决于理解 ObjectSet.AddObjectObjectSet.Attach 的不同角色。 AddObject 插入新实体,而 Attach 管理现有实体。 然而,需要 Attach 的情况可能会有细微差别。

Attach 的一个关键用例涉及与上下文分离的实体。这通常发生在检索实体并随后关闭上下文之后。 要重新参与此实体进行修改,请使用 Attach:

<code class="language-csharp">var existingPerson = new Person { Name = "Joe Bloggs" };
ctx.Persons.Attach(existingPerson);
existingPerson.Name = "Joe Briggs";
ctx.SaveChanges();</code>
登录后复制

这会生成一个 UPDATE 语句,避免冗余的数据库检索。

Attach 的另一个有价值的应用是连接缺乏自动关系的现有上下文附加实体。 考虑一个具有 Person 导航属性的 Addresses 实体(Address 实体的集合)。如果您已加载 PersonAddress 对象,但它们的关系尚未建立,Attach 提供了解决方案:

<code class="language-csharp">var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs");
var myAddress = ctx.Addresses.First(a => a.PersonID != existingPerson.PersonID);
existingPerson.Addresses.Attach(myAddress);
ctx.SaveChanges();</code>
登录后复制

这里,Attach更新关系而不修改实体本身。

以上是实体框架 4:何时使用 `AttachObject` 与 `AddObject`?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板