我有一个使用PredicateBuilder构建的非常复杂的条件但现在要使用它我需要将它与字段选择器结合使用以在Where子句中使用。
示例:
class A
{
public A()
{
Test = DateTime.Now.ToString("yyyyMMddHHmmsszz");
}
public string Test { get; set; }
}
class B
{
public A AProp { get; set; }
}
static void Main(string[] args)
{
var list = Enumerable.Range(0, 10)
.Select(_ => new B())
.ToList();
var result = list
.AsQueryable()
.Where(GetFilter(b => b.AProp))
.ToList();
Console.ReadKey();
}
private static Expression<Func<B, bool>> GetFilter(Expression<Func<B, A>> selector)
{
// some complex condition to apply on property AProp
Expression<Func<A, bool>> condition = a => a.Test.Contains("2015");
return b => true; // Like b.AProp.Test.Contains("2015");
}
限制: