如何通过 LINQ 使用谓词来查询 CRM 2011
How to use predicates with LINQ to query CRM 2011
我正在尝试使用 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>
请建议我需要做什么来修复它。
谢谢
你试过这样做吗?
var query = context.Products.AsExpandable().Where(predicate);
我相信您正在使用 Dynamics CRM。所以以下应该适合你。
var query = from p in context.ProductSet
.AsExpandable().Where(predicate) select p;
我正在尝试使用 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>
请建议我需要做什么来修复它。
谢谢
你试过这样做吗?
var query = context.Products.AsExpandable().Where(predicate);
我相信您正在使用 Dynamics CRM。所以以下应该适合你。
var query = from p in context.ProductSet
.AsExpandable().Where(predicate) select p;