6

可能な重複があります:
Bulk-deleting in LINQ to EntitiesはDbSet <T> .RemoveWhere(述語<T>)のようなもの

私は条件によっていくつかのエンティティを削除する必要があります。私はそれらの項目を選択することができ、

var orderId = 10; // any order Id 
context.OrderItems.RemoveWhere(item => item.OrderId == orderId && item.Quantity < 1.0); 

私が知っているし、それらを一つ一つ、このような削除:例えば、1よりも少ない量を持つすべての注文項目を削除

var itemsToRemove = context.OrderItems.Where(item => item.OrderId == orderId && item.Quantity < 1.0).ToArray(); 

foreach (var item in itemsToRemove) 
    context.OrderItems.Remove(item); 

をしかし、これはあります余分な作業が行われるため、非常にありそうもありません。 私は何かを忘れましたか?

答えて

3

Batch Update and DeleteをサポートするGitHubでEntityFramework.Extendedプラグインを使用できます。

+0

この解決策にはいくつかの制限がありますが、何もしないほうが優れています。ありがとう、私はそれを試してみましょう。 – Dennis

+0

@Dennisオープンソースなので、要件に合わせていつでも調整できます。 – James

+0

@ jamesの制限は、本質的により理論的/実用的です。 ORMがバッチ更新と削除を適切にサポートする一般的な方法はありません。実用的なソフトウェアエンジニアリングに傾いた学術コンピュータサイエンスのオープンな研究課題でもあります。最新のものについては、Willard Cookの「バッチ処理」の論文を参照してください。 –

関連する問題