返回Linq查询结果的数据类型

时间:2009-06-12 20:10:34

标签: linq

我想我错过了一些非常基本的东西。

var signatures=from person in db.People
               where person.Active==true
               select new{person.ID, person.Lname, person.Fname};

这个linq查询有效,但我不知道如何将结果作为类的公共方法返回。

示例总是显示返回整个实体(如IQueryable <People&gt;),但在这种情况下,我只想返回SomeKindOfList <int, string, string&gt;的子集。由于我不能使用var,我该怎么用?

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以从linq查询中获取具体类型,但在您的情况下,您使用

构建匿名类型
select new{person.ID, person.Lname, person.Fname};

相反,如果您编写了一个名为“Person”的类,并执行了此操作:

select new Person(peson.ID, person.Lname, person.Fname);

您的linq结果(签名)可以是IEnumerable<Person>类型,这是您可以从函数返回的类型。

示例:

    IEnumerable<Person> signatures = from person in db.People
       where person.Active==true
       select new Person(person.ID, person.Lname, person.Fname);