List<System.Linq.Expressions.Expression<Func<MyType, bool>>> lstPredicates = new List<System.Linq.Expressions.Expression<Func<MyType, bool>>>();
foreach (MyType myAccount in lstMyType)
{
System.Linq.Expressions.Expression<Func<MyType, bool>> predicate =
t => t.Account == myAccount.Account && t.Branch == myAccount.Branch;
lstPredicates.Add(predicate);
}
lstTransactions = Context.MyTrans
.Where(lstPredicates)
.ToList();
我试图只在MyTrans
表中运行一次查找,所以我正在建立一个谓词列表。我想检查事务中存在任何帐户和分支组合的列表中的事务。
即。我正在尝试生成像
这样的谓词predicate = t =>
(t.Account == 123 && t.Branch == London)
|| (t.Account == 433 && t.Branch == Manchester)
||...
答案 0 :(得分:0)
您可以使用Linqkit库。使用PredicateBuilder
,您可以执行以下操作:
var predicate = PredicateBuilder.False<MyType>();
foreach (MyType myAccount in lstMyType)
{
predicate = predicate.Or (
t => t.Account == myAccount.Account && t.Branch == myAccount.Branch);
}
var query= Context.MyTrans.AsExpandable().Where(predicate);