首頁 > 後端開發 > C++ > 實體框架 4:何時使用 `AttachObject` 與 `AddObject`?

實體框架 4:何時使用 `AttachObject` 與 `AddObject`?

Mary-Kate Olsen
發布: 2025-01-10 14:02:42
原創
378 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板