我有以下代碼:代碼首先EF刪除ID爲唯一和
public void Remove(Guid id)
{
var symbol = new Symbol()
{
Id = id
};
_ctx.Entry(symbol).State = EntityState.Deleted;
_ctx.SaveChanges();
}
符號實體有稱爲「A類」相關實體。它沒有設置爲級聯刪除,因爲它是來自查找表的值。我想單獨離開類別,但是當它運行時,它會拋出DbUpdateException: 'HourlyContext.Symbols'中的實體參與'Symbol_Category'關係。找到0個相關的'Symbol_Category_Target'。預計1'Symbol_Category_Target'。
據我所知,EF對如何處理關係感到困惑,我該如何告訴它簡單地放棄對類別的引用並繼續並刪除符號?
謝謝。
。
編輯
好了,所以我試圖加入一個可空的CategoryId as shown here使得外鍵可以爲空(僅供參考我使用的代碼第一實體框架):
public class Symbol : EntityBase
{
[Required]
public string CompanyName { get; set; }
public int? CategoryId { get; set; }
[Required]
public MarketCategory Category { get; set; }
}
但是,創建一個遷移後並更新數據庫,這不會解決異常。
。
編輯2
好了,所以事實證明,(回頭現在是顯而易見的),添加了「需要」屬性防止列被空。現在我的意圖是不允許編碼器(即我)在代碼中意外地將關係設置爲null,但是當我通過Id刪除對象時,允許框架將它清空。看來這不能做到。所以我需要做的是刪除必需的屬性(並省略'categoryId'列)。