3

我正在尝试使用 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>

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

谢谢

4

2 回答 2

3

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

var query = from p in context.ProductSet
        .AsExpandable().Where(predicate) select p;
于 2015-06-10T15:45:05.800 回答
0

你试过做这样的事情吗?

var query = context.Products.AsExpandable().Where(predicate);
于 2015-06-10T15:18:43.793 回答