c# – 实体框架4:如何将投影编码为类类型?

如果我有类似以下的类:

public class Customer {
    public int    id    {get;set;}
    public string name  {get;set;}
    public string line1 {get;set;}
    public string line2 {get;set;}
    public string line3 {get;set;}
    public string line4 {get;set;}
}

我只想选择ID和Name值,剩下的就是null.

var myCustomerList = DC.Customer.Select( 
                     p => new Customer { id = p.id, name = p.name });

我收到以下错误:

The entity or complex type 'MyModel.Customer' cannot
be constructed in a LINQ to Entities query.

你还怎么做?我是否需要指定所有Class的字段?

最佳答案 试试这个:

var myCustomerList = from c in DC.Customer 
                     select new { id = p.id, name = p.name };

以上将创建一个Anonymous Type.

实际应用:

“var myCustomerList”< – 匿名类型. 具有两个属性“id”和“name”的匿名类型.此外,“var”允许您创建隐式类型的局部变量.这意味着: a)您不必声明/编写类结构来保存只包含这两个属性的类型; b)您也不必维护 – 您可以更改上述查询的结构,“它只是工作”.

点赞