像標題所說的那樣,EF 6不想刪除表中的行(多對多關係)。實體框架不希望刪除表中存在多對多關係的行
表是:
組織
- ID(int主鍵)
- 名稱(字符串)
OrganizationContact(多對多)
- 標識(int主鍵)
- OrganizationId(外鍵Organization.Id不爲空)
- ContactTypeId(外鍵ContactType.Id不爲空)
- 詳細信息(串)
ContactType
- Id(int主鍵)
- 名稱(字符串可爲空)
這是代碼:
using (var db = new Entities())
{
db.Database.Log = x => Debug.WriteLine(x);
var organizationDto = db.Organizations.First();
var contactDto = organizationDto.Contacts.Last();
organizationDto.Contacts.Remove(contactDto);
db.SaveChanges();
}
這是個例外:
「System.InvalidOperationException」類型的異常出現在EntityFramework.dll但在用戶代碼
其他沒有處理信息:操作失敗:由於一個或多個外鍵屬性不可空,因此無法更改關係。當對關係進行更改時,相關的外鍵屬性將設置爲空值。如果外鍵不支持空值,則必須定義新的關係,必須爲外鍵屬性指定另一個非空值,或者必須刪除不相關的對象。
我將不勝感激任何建議。謝謝!
編輯: db.SaveChanges()的日誌顯示沒有對數據庫的查詢。
當您刪除「聯繫人」時,是否要刪除級聯?刪除一個'Contact'可能會留下一個'OrginizationContact'行,指向'Contact'中不存在的行。 –
其實,我試圖刪除一個OrginizationContact行,我想只刪除OrganizationContact中的行。 – user3049133