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

4 linq

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

var signatures=from person in db.People
               where person.Active==true
               select new{person.ID, person.Lname, person.Fname};
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

wom*_*omp 5

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

select new{person.ID, person.Lname, person.Fname};
Run Code Online (Sandbox Code Playgroud)

相反,如果您编写了一个名为"Person"的类,并执行了以下操作:

select new Person(peson.ID, person.Lname, person.Fname);
Run Code Online (Sandbox Code Playgroud)

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

例:

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