Entity Framework 4: AddObject 與 Attach 方法的差異與應用
在 Entity Framework (EF) 中,實體管理涉及到 AddObject
和 Attach
兩種方法。 AddObject
用於插入系統新實體,而 Attach
則用於處理資料庫中已存在的實體。
AddObject:用於建立新實體
如標題所述,AddObject
用於建立新實體。此方法會指派一個產生的 EntityKey 並將 EntityState 設為 Added。當呼叫 SaveChanges
時,EF 會瞭解需要將此實體插入資料庫。
Attach:用於修改現有實體
相反,Attach
用來修改資料庫中已存在的實體。使用 Attach
時,EntityState 不會被設定為 Added。它保持 Unchanged 狀態,表示自實體附加到上下文以來沒有發生任何修改。這允許 EF 在呼叫 SaveChanges
時使用 EntityKey 的值來識別實體並根據需要更新或刪除它。
Attach 方法的應用場景
Attach
方法的一個實用場景是:在無需明確從資料庫中檢索的情況下更新現有實體。例如,如果您有一個已存在於上下文中的 Person 物件 existingPerson
,您可以更新其屬性並將其附加到上下文:
<code>var ctx = new MyEntities(); var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name == "Joe Bloggs"); existingPerson.Name = "Joe Briggs"; ctx.Persons.Attach(existingPerson); ctx.SaveChanges();</code>
透過使用 Attach
,您可以避免執行額外的查詢來檢索實體的當前狀態。
總結
瞭解 AddObject
和 Attach
之間的差異對於高效使用 Entity Framework 至關重要。 AddObject
用於新建立的實體,而 Attach
用於現有實體,使您可以有效且有效率地修改它們。
以上是實體框架 4:AddObject 與 Attach:何時使用每種方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!