LINQ to Entities中不支持LINQ表达式节点类型

Amc*_*tty 0 c# linq linq-to-entities entity-framework iqueryable

当我尝试在LINQ to Entities中运行以下查询时出现错误:

 var query = DBConn.myView
                            .Select(dm => new App.DTOs.MyDTO
                            {
                                ID = dm.ID,
                                Prop1 = dm.Prop1
                                ....
                            })
                            .Where(dm => dm.TypeID != 4); 
Run Code Online (Sandbox Code Playgroud)

错误消息是:

LINQ expression node type 'TypeID' is not supported in LINQ to Entities
Run Code Online (Sandbox Code Playgroud)

它在.ToList()通话中失败:

private List<MyDTO> lstDTO;
lstDTO = query.ToList();
Run Code Online (Sandbox Code Playgroud)

但是,如果我.Where()从查询中删除它,它的工作原理.有没有办法在Where这个查询中使用该子句?

Jam*_*iec 5

你只需要交换你SelectWhere周围的部分:

var query = DBConn.myView
              .Where(dm => dm.TypeID != 4)
              .Select(dm => new App.DTOs.MyDTO
                            {
                                ID = dm.ID,
                                Prop1 = dm.Prop1
                                ....
                            });
Run Code Online (Sandbox Code Playgroud)