0

我有一个字典Dictionary<string, List<string>> FilterDictionary,其中包含一个列名作为键,该键的值是一个将用作 where 子句的条件列表。

我需要查询我的数据库,并为字典中的每一列使用该键列表中的条件查询该列。

只是想知道最好的方法是什么?

这是我想要实现的目标,但显然我知道它不像columnName == filterCriteria.

var originalQuery = from p in productContext.Products
                    select p;
foreach (var item in FilterDictionary)
{
    string columnName = item.Key;

    foreach (var filterCriteria in FilterDictionary)
    {
        originalQuery.Where(columnName == filterCriteria); 
    }
}
4

1 回答 1

1

我会做这样的事情来保存你的过滤条件集合:

var filters = new List<Expression<Func<Product, Boolean>>>();
filters.Add(e => e.Name == "some name");

var originalQuery = from p in productContext.Products
                    select p;
originalQuery = filters
    .Aggregate(originalQuery, (current, condition) => current.Where(condition));

foreach循环结束时,originalQuery将在逻辑AND上将filters.

于 2012-09-24T12:31:53.577 回答