1

親エンティティコレクションから子エンティティを削除するとき、EFが子エンティティの状態を削除する代わりに変更するように設定していることに気付きました。EF Delete Child Object

エンティティオブジェクトマネージャ内に、削除を設定する別のプロパティがありますか?

以下は、変更された子アイテムを見つけて削除するための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 

私が午前問題は状態が両方のために修正さに設定されているため、更新と削除の違いを検出しようとしています。現時点では、レコードを更新するときにアイテムを削除しています。 2つの州の間で検出できますか?

答えて

0

EFでは、親コレクションからオブジェクトを削除すると、オブジェクトが削除されるのではなく、変更されているため、削除されていないと修正されています。削除するには、削除するオブジェクトが含まれているオブジェクトセットのDeleteObject()メソッドを使用します。

myObjectContext.StockTransferItems.DeleteObject(stockTransferItemToDelete);