Guid 比较在 linq 上不起作用的条件



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

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

 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();
            }

你必须有一个值 'PId' (PId=a.PId), 然后你可以在一个条件中使用它 (Where(f => f.PId == 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,
                        PId=a.PId
                    }).Where(f => f.PId == PId);
                    return list.ToList();
                }

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

最新更新