Guid比较没有在linq上工作的条件

时间:2017-11-05 05:41:14

标签: entity-framework linq

这里我传递一个名为PId的参数。哪个将与另一个表的PId进行比较。但是当查询将查询绑定到ToList()时,我收到错误。

错误:“LINQ to Entities不支持指定的类型成员'PId'。仅支持初始值设定项,实体成员和实体导航属性。”

 public IList<Models.MyModel> GetDaraByPId(Guid PId)
            {
                var query = this._Repository.GetIQueryable();
                var list = query.Select(a => new Models.MyModel
                {
                    MyModelId = a.Id,
                    MyModelName = a.Name
                }).Where(f => f.PId == PId);
                return list.ToList();
            }

2 个答案:

答案 0 :(得分:2)

您的值必须为'PId'(PId = a.PId),然后您就可以在条件中使用它(Where(f =&gt; f.PId == PId))。

SELECT name, address FROM global WHERE (type=3) AND WHERE (id BETWEEN 3 and 7);

答案 1 :(得分:0)

我也遇到了这个问题。解决方案是,当您通过任何参数创建具有条件的模型构造函数时,模型必须包含用于比较的Property。在这里,您会错过该模型的“PId”属性。