2012-11-18 38 views
-1

這是我的代碼工作:如何重構SQL查詢在foreach

foreach (var r in rlist) 
    { 
     if (r.IndexOf("_") != -1) 
     { 
      int id = int.Parse(r.Split('_')[1]); 
      var x_tmp = (from x in db.tblX where x.x_id == my_id && x.x_id == id select x).First(); 
      x_tmp.order = someNumber; 
     } 
    } 
    db.SaveChanges(); 

有沒有辦法來重構呢?

+5

所屬:http://codereview.stackexchange.com/ –

回答

0
foreach(var x_tmp in db.tblX.Where(x => rlist.Where(r => r.indexOf("_") != -1).Select(r => Convert.ToInt32(r.Split('_')[1])).Contains(x.x_id))) 
    x_tmp = someNumber; 
db.SaveChanges(); 

什麼是「my_id」?