考慮處理房屋和圖片的應用程序。名爲House
的實體與HousePicture
的關係具有1:n的關係。實體框架:更新實體的子集合的一對多關係
該應用程序允許用戶創建和編輯House
,並添加/刪除HousePictures
。
[HttpPost]
public ActionMethod Edit(House h)
{
//get an attached entity from the DB first.
House original = db.Houses.SingleOrDefault(x=>x.ID==h.ID);
UpdateModel(original);
//collect all the uploaded pictures.
original.HousePictures = GatherPicturesFromForm();
db.SaveChanges();
// the changes for the House are saved,
//but child collection Pictures are not.
}
你怎麼去更新 - 從頭重新子集合當孩子收集 - 添加新&刪除?
Add()
orAttach()
對於集合中的每個孩子?- 您需要以什麼順序添加或附加父實體與子集合?
- 如何去檢測孩子去除?這是EF4的一個功能,刪除是由框架自動發生的,還是開發人員需要編寫這種邏輯?
添加多個
HousePicture
時,其ID == 0.實體具有SQL Server中的主鍵具有int IDENTITY(1,1)
的自動分配PK。這成爲一個問題,因爲EF4認爲2+孩子有相同的ID。對於使用實體框架4保存子集合的建議是什麼?
- 有關在更新/添加/刪除時如何使1:n集合的持久性更容易的其他建議?
你是怎麼解決這個問題的?保存EntityCollection回到數據庫? – 2011-04-04 10:29:46