[英]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.