我按照我的朱莉Lermans書編程實體框架閱讀有關EF庫模式:的DbContext實體框架的通用倉庫 - 外鍵例外更新實體關係
我有具有多對多名爲Customer的實體與實體收藏
這裏關係是一個更新的一些示例代碼,客戶
customer.CustomerLocation_ID = 5;
customer.Favourites.clear();
customer.State = State.Modified;
customerRepository.InsertOrUpdate(customer);
插入然後將做到以下幾點:
Entry(entity).State = EntityState.Modified;
foreach (var entity in this.ChangeTracker.Entries<IEntityState>())
{
IEntityState stateInfo = entity.Entity;
entity.State = StateHelpers.ConvertState(stateInfo.State);
}
後來總算:
context.SaveChanges();
一旦保存,我得到一個唯一的密鑰異常的收藏,因爲收藏夾名稱是唯一的。但我沒有在收藏夾中添加任何內容。
當我刪除.clear()行時,一切都很好保存。
更新:
我在這段代碼只是嘗試一些東西,現在的作品加入。
foreach (var fav in customer.Favourites)
{
fav.State = State.Modified;
}
這是否意味着即使我正在影響客戶,我仍然需要將收藏夾標記爲已修改,以便跟蹤和更新它們?我只是不認爲我必須這樣做。
您正在對您的客戶進行一系列關於已清除收藏夾的刪除操作(實際上,您是在刪除與此客戶關聯的所有收藏夾鏈接記錄)。你確定這是預期的效果嗎? – Tejs
這就是主意。我想刪除所有客戶的最愛。現在就去更新這個問題。 – LivingOnACloud