2014-01-14 26 views
4

我是LINQ新手,簡單的選擇哪裏LINQ查詢列表

我想從我的dbcontext生成一個對象列表,其中某個字段設置爲true。

這是我到目前爲止,但我得到一個關於選擇的錯誤?

using (var db = new dbContext()) 
{ 
    return (from s in db.sims.Where(x=>x.has_been_modified == true) select x).ToList();    
} 

編輯:

//Returns a list of entries which where marked as edited in the sim managment database 
    private List<String> GetUpdatedEntries() 
    { 
     using (var db = new dbContext()) 
     { 
      return db.sims.Where(x => x.has_been_modified).ToList();     
     } 
    } 

回答

16

select s,不x,這會工作。 (因爲你from s

較短方式

return db.sims.Where(x => x.has_been_modified).ToList(); 

爲您編輯

的方法的返回類型應該是一個List<Sim>,而不是一個List<String>

+0

我的方法返回哪種類型的列表以使其工作?看我的編輯。我知道我有名單但它應該是什麼類型? – Zapnologica

+1

@Zapnologica應該是'List '(或類似的東西)。 –

2

這將工作

return db.sims.Where(x=>x.has_been_modified).ToList(); 
  1. 方法的LINQ看起來比較清爽這裏
  2. 你沒有需要檢查你對真正
  3. 布爾在你以前,你用s作爲背景和選擇x,答案更改爲select s也應努力
  4. 考慮使用延遲加載,並且不會在每個查詢的末尾添加ToList
+0

請你詳細說明爲什麼我應該使用懶加載而不是列表? – Zapnologica

+1

@Zapnologica表現,閱讀這個主題http://stackoverflow.com/questions/6847721/when-should-i-use-lazyt – wudzik