1

當從父實體集合中刪除一個子實體時,我注意到EF設置子對象實體狀態被修改而不是被刪除。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 

我有嘗試,因爲狀態設置爲修改兩個檢測更新和刪除的區別的問題。此刻,當我更新記錄時,它正在刪除該項目。我可以在兩種狀態之間檢測嗎?

回答

0

EF表示該對象被修改而不是被刪除,因爲從父集合中刪除它正在修改它而不是刪除它。要將其刪除,請在包含要刪除的對象的對象集上使用DeleteObject()方法,如下所示:

myObjectContext.StockTransferItems.DeleteObject(stockTransferItemToDelete);