2014-01-14 17 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