2011-08-12 9 views
2

DbContextおよびDbSet <でコードネームEF 4を使用し、DataAnnotationsでPOCOを使用します。 私はこれに新しいですし、私の質問への答えを見つけることができないようです。を各繰り返しで呼び出すと、LINQの項目を選択せず​​にループを実行せずに、データベースから複数の項目を直接削除することはできますか?それは私にはばかげているようです。コードファーストEFでデータベースから複数のアイテムを削除する方法

これに関するすべての参考文献は、私のDbContextにはないDeleteOnSubmit(item)のような存在しないような機能を指しています。また、1つの項目のみを削除します。

良い方法がありますか?

答えて

4

DeleteOnSubmitDataContextクラスから関数です= LINQのツーSQL

ヨは、あなたがそれを削除する前にアイテムをロードする必要はありません。あなたがその鍵を知っていれば十分です。このような何か作業をする必要があります:

var item = new Item { Id = someId }; 
context.Items.Attach(item); 
context.Items.Remove(item); 
context.SaveChanges(); 

または

var item = new Item { Id = someId }; 
context.Items.Attach(item); 
context.Entry(item).State = EntityState.Deleted; 
context.SaveChanges(); 

を削除するために、各単一の項目を指定せずに(カスケード削除を除く)EFと複数のアイテムを削除する方法はありません。あなたが複数の項目を削除したい場合は、直接あなたはそれがメモリ内のオブジェクトを必要に応じて、一度に複数の削除をサポートしていません

context.Database.ExecuteSqlCommand("DELETE ..."); 
0

エンティティフレームワークのようなSQLを使用する必要があります。ループを繰り返す必要があります。

関連する問題