2017-07-31 5 views
1

こんにちは私は今エンティティフレームワークについて学んでいて、まだ初心者です。今、データベースの複数のデータを削除する際に問題が発生しています。エンティティフレームワークとasp.netを使用して複数のデータを削除するには?

Please click to see the image for database

は、例えば、私は2のbrandIdが、私はこのコードを使用しようとしている全てのデータを削除したい:ここに私のデータベースの一部です

int brandId = (from i in context.brands where i.name == name.Text select i.brandId).First(); 
var bay2 = (from g in context.logoes where brandId == g.brandId select g).FirstOrDefault(); 

     if (bay2 != null) 
     { 
      context.logoes.Remove(bay2); 
      context.SaveChanges(); 
     } 

は、しかし、それは一つだけを削除しますデータは、logoId 3. logoIdは削除されませんでした。4.私のクエリで何が間違っていますか?エンティティフレームワークを使用してbrandId 2を持つすべてのデータを削除するにはどうすればよいですか?そのためFirstOrDefault

var bay2 = (from g in context.logoes where brandId == g.brandId select g).FirstOrDefault(); 

+0

あなたは 'RemoveRange'を使ってマルチロット'ロゴ 'を削除することができると信じています。 –

答えて

2

この行は、1つのオブジェクトのみを引っ張っています。

FirstOrDefaultを削除します。そして、RemoveRangeを使用します。

var bay2 = (from g in context.logoes where brandId == g.brandId select g).FirstOrDefault(); 

if (bay2.Any()) 
{ 
    context.logoes.RemoveRange(bay2); 
    context.SaveChanges(); 
} 
+0

それは働いた。優れた –

0

)は、(代わりに第一の.ToList()メソッドを使用してみてください。次に、foreachを使用してこれらのオブジェクトを削除するか、または全体の範囲を削除するなど、リストを反復処理します。

関連する問題