EF 4.1數據庫第一種方法。EF 4.1多對多刪除家長應刪除相關子女
說我有這個表模式
Users 1---M UserRoles M---1 Roles
級聯刪除是外鍵
該表的UserRole像有額外CreatedDate列設置,所以我創建一個的UserRole模型和相應的映射。
我結束了以下型號:
User
----
int Id
string Name
List<UserRoles> UserRoles
UserRoles
---------
int UserId
int RoleId
DateTime CreatedDate
User User
Role Role
Role
----
int Id
string Name
List<UserRoles> UserRoles
如果我有我的配置是正確的,我應該能夠刪除用戶,並將用戶角色行,而不必手動清除的UserRole集合中刪除?
所以我能不能做到這一點:
DbContext.Entry(user).State = EntityState.Deleted;
DbContext.SaveChanges();
還是我必須這樣做:
user.UserRoles.Clear();
DbContext.Entry(user).State = EntityState.Deleted;
DbContext.SaveChanges();
我的測試表明我要明確孩子集合,但我發現相互矛盾的信息如果我正確級聯刪除安裝程序,它應該只能刪除用戶。
時候,不清楚,我收到此錯誤的UserRole:您在澄清這一幫助
The relationship could not be changed because one or more of the foreign-key properties is non-nullable
謝謝!
謝謝!我以爲我瘋了...是的,孩子們被裝載,這解釋了爲什麼這不按預期工作。他們(英孚團隊)應該改變這種行爲...似乎不是很直觀 – 2012-02-09 16:41:58