Linq to entity 动态生成where in

  • Post author:
  • Post category:其他




问题背景:

public IQueryable<T_Bas_PlanInfo> GetT_Bas_PlanInfoByCondition(List<string> conditions)

{


var results = this.ObjectContext.T_Bas_PlanInfo

.Where(e => conditions.Any(e2 => e.plangeneral.Contains(e2)));

return results;

}

在T_Bas_PlanInfo中的plangeneral列中查找包含conditions中任意元素的项,结果返回空(实际应该非空)。



解决方案:

对于conditions这种动态数组,需要表达式树动态生成查询语句。

扩展wherein

public static IQueryable<TEntity> WhereIn<TEntity, TValue>

(

this ObjectQuery<TEntity> query,

Expression<Func<TEntity, TValue>> selector,

IEnumerable<TValue> collection

)

{



版权声明:本文为wangchongcy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。