[英]Delete entity with all childs connected
我一直在嘗試從數據庫中正確刪除單個項目 ,以滿足FK限制。
我得到了Item實體(用於EF),該實體被多個其他人引用
public class Item
{
public int Id {get; set;}
...
public FoodItem FoodItem { get; set; }
public LocalItem LocalItem { get; set; }
public ItemToCategory ItemToCategory { get; set; }
}
其中, Id是項目的 PK,其他實體是FK。
我看到兩種刪除實體和子級的可能方法:
首先 :
到目前為止,我的查詢必須像
Item basicItem = await db.Items.Include(b => b.LocalItem)
.Include(b => b.FoodItem)
.Include(b => b.ItemToCategory)
.SingleOrDefaultAsync(p => p.Id == productId);
db.Items.Remove(basicItem);
await db.SaveChangesAsync();
但是我得到Source sequence contains more than one element
錯誤,並且不知道為什么。
第二 :
仍然是一種方法,但是我想暫停一會兒。 因為我看到了,就像不太安全的方法一樣。
因此,返回主題:如何在連接所有子節點的情況下刪除我的實體?
最后,我選擇在連接的實體上設置級聯刪除約束
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.