4

我在搜索中遇到了 Where 子句的问题,在我的原始版本 EF4 中,我可以添加一个带有 2 个参数的 Where 子句、where 子句(字符串谓词)和一个 ObjectParameter 列表,例如

var query = context.entities.Where(WhereClause.ToString(), Params.ToArray());

自从我升级到 EF5 后,我似乎没有该选项,我错过了什么吗?

这最初用于构建动态 where 子句,例如“it.entity_id = @entity_id”,然后将变量值保存在 ObjectParameter 中。

我希望我不必重写以这种方式构建的所有搜索,因此将不胜感激任何帮助。

干杯

4

1 回答 1

1

为了将 ESQL 与 DbContext 一起使用,您必须“下拉”到 ObjectContext。

var objectContext = ((IObjectContextAdapter)context).ObjectContext;
var query = objectContext.CreateQuery<MyEntity>(
    WhereClause.ToString(),
    Params.ToArray());
于 2012-11-07T22:56:05.760 回答