如何使用LINQ谓词来查询CRM 2011

时间:2015-06-10 15:07:47

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

我正在尝试使用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:&#39; System.Linq.IQueryable&#39;不包含&#39; Where&#39;的定义和最好的扩展方法重载&#39; System.Linq.Queryable.Where(System.Linq.IQueryable,System.Linq.Expressions.Expression&gt;)&#39;有一些无效的论点

错误2 参数2:无法转换为&#39; System.Linq.Expressions.Expression&gt;&#39;到&#39; System.Linq.Expressions.Expression&gt;

请建议我需要修理它。

由于

2 个答案:

答案 0 :(得分:3)

我相信您正在使用Dynamics CRM。所以下面应该适合你。

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

答案 1 :(得分:0)

你尝试做过这样的事吗?

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