2017-07-31 108 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的所有數據?

+0

我相信你可以使用'RemoveRange'刪除多重'徽標'.. –

回答

2

這條線拉動只有一個對象:

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

由於FirstOrDefault的。

刪除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()方法而不是First()。然後用foreach遍歷這個例子列表並刪除這些對象,或者刪除整個範圍。