簡體   English   中英

EF刪除子對象

[英]EF Delete Child Object

從父實體集合中刪除子實體時,我注意到EF將子實體狀態設置為修改而不是刪除。

實體對象管理器中是否還有另一個屬性將其設置為刪除?

以下是我在EF儲存庫的Save方法中使用的代碼,以查找已被修改的子項,然后將其刪除。

Dim orphans = DataContextFactory.GetWMSDBContext().ChangeTracker.Entries().Where(Function(e) (e.State = EntityState.Modified) AndAlso TypeOf e.Entity Is StockTransferItem)
For Each orphan In orphans
    orphan.State = EntityState.Deleted
Next

我遇到的問題是嘗試檢測更新和刪除之間的差異,因為狀態均設置為修改。 目前,當我更新記錄時,它也在刪除項目。 我可以在兩個狀態之間進行檢測嗎?

EF表示該對象是修改而不是刪除的,因為從父集合中刪除該對象是對其進行修改,而不是刪除它。 要刪除它,請在包含您要刪除的對象的對象集上使用DeleteObject()方法,例如:

myObjectContext.StockTransferItems.DeleteObject(stockTransferItemToDelete);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM