【问题标题】:Convert lambda expression to expression tree [duplicate]将lambda表达式转换为表达式树[重复]
【发布时间】:2013-12-19 10:09:08
【问题描述】:

我做一个 linq 查询:

        var parcels = (from parcel in Db.Parcels
                                where
                                    (parcel.Neighbors.Count(neig =>
                                        {
                                            var neigType1 = neig.Neighbors as NeigType1;
                                            var neigType2 = neig.Neighbors as NeigType2;
                                            var result = false;
                                            if (neigType1 != null)
                                            {
                                                 result = neigType1.Name.Contains(NeigTextBox.Text);
                                            }

                                            if (neigType2 != null)
                                            {
                                               result = кадастроваяОрганизация.Name.Contains(NeigTextBox.Text);
                                            }
                                            return result;
                                        }) > 0)
                                select parcel).ToList();

但是在(parcel.Neighbors.Count(neig => 行我得到一个错误:

带有语句体的 lambda 表达式不能转换为 表达树

Google 这么说是因为我不使用 => 运算符。但是我要把它放在哪里呢?

【问题讨论】:

  • 我认为最有趣的部分发生在.....
  • 结果返回bool类型吗?
  • 了解一下你可以用 Linq to Entities msdn.microsoft.com/en-us/library/bb345303(v=vs.110).aspx 做些什么
  • @SergeyBerezovskiy:这只是邻居的选择类型。但如果需要,我可以编辑有问题的代码。

标签: c# linq


【解决方案1】:

试试这个解决方案:

var parcels = Db.Parcels
    .Where(p => p.Neighbors.Count(neig =>
        {
            .....
            return result;
        }) > 0)
    .ToList();

【讨论】:

  • 这不会抛出同样的错误吗?你仍然有一个带有语句体的 lambda 表达式...
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多