【问题标题】:How to use predicates with LINQ to query CRM 2011如何使用带有 LINQ 的谓词查询 CRM 2011
【发布时间】:2015-06-10 15:07:46
【问题描述】:

我正在尝试使用 linqkit 进行谓词。尝试编译时获取以下代码。

public void TestPredicate(Guid[] productIds)
{
    var predicate = PredicateBuilder.False<Product>();
    foreach (var productId in productIds)
    {
        var tempGuid = productId;
        predicate = predicate.Or(p => p.ProductId== tempGuid);
    }
}

    var query = from p in context.CreateQuery("product")
            .AsExpandable().Where(predicate) select p;
}

错误 1: 'System.Linq.IQueryable' 不包含 'Where' 的定义和最佳扩展方法重载 'System.Linq.Queryable.Where(System.Linq.IQueryable, System.Linq.Expressions.Expression>)' 有一些无效参数

错误 2 参数 2:无法从 'System.Linq.Expressions.Expression>' 转换为 'System.Linq.Expressions.Expression>

请建议我需要做什么来修复它。

谢谢

【问题讨论】:

  • context.CreateQuery("product") 更改为 context.Set&lt;Product&gt;()
  • 设置在上下文中不存在。

标签: linq linq-to-entities dynamics-crm-2011 predicate linqkit


【解决方案1】:

我相信您正在使用 Dynamics CRM。因此,以下应该对您有用。

var query = from p in context.ProductSet
        .AsExpandable().Where(predicate) select p;

【讨论】:

    【解决方案2】:

    您是否尝试过这样做?

    var query = context.Products.AsExpandable().Where(predicate);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多