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

时间:2012-09-24 11:34:41

标签: c# linq entity-framework linq-to-entities 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); 

错误讯息是:

LINQ expression node type 'TypeID' is not supported in LINQ to Entities

.ToList()来电失败:

private List<MyDTO> lstDTO;
lstDTO = query.ToList();

但是,如果我从查询中删除.Where(),它就可以了。有没有办法在此查询中使用Where子句?

1 个答案:

答案 0 :(得分:5)

您只需要更换SelectWhere部分:

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