2013-06-28 49 views
0

我在Linq很新。我有个问题。我正在尝试检索文件列表。这是我写的查询。如何获取对象列表?

var DataSource = from d in db.Directories 
       join dok in db.Files on d.DirectoryId equals dok.DirectoryId 
       where dok.SomeId == (int)cboSome.SelectedValue 
       select new { d }; 

这将检索权限,但我想检索文件列表。当我通过将var转换为Files来获取数据源时,它将返回null。我怎样才能做到这一点?对不起,如果它太简单了。

+0

不知道你的问题是... –

+0

我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –

回答

3

你想要什么结果呢?

如果你想从db.Directories导致的对象,尝试这样的事情:

var DataSource = (from d in db.Directories 
          join dok in db.Files on d.DirectoryId equals dok.DirectoryId 
          where dok.SomeId == (int)cboSome.SelectedValue 
          select d).ToList(); 

记得调用ToList()方法。

+0

非常感谢你的工作。我不知道选择新的和选择的区别。 – Ada

+0

select new返回一个nonnymus类型,它将实际对象包装在您的案例中。 忘记那些东西,当你开始学习Linq – CSharpie

+0

谢谢你的帮助。 – Ada

2

有一个.ToList()扩展方法应该将任何IEnumerable转换为List

var List = DataSource.ToList();