谓词构建器选择所有替代方案

问题描述 投票:0回答:1

我正在为应用程序创建过滤器,对同一窗口有两种方法,第一种方法是当我传递 code 并用它获取所有记录时,第二种方法是当我需要在 code 为空或空时获取所有记录。搜索了很多解决方案但没有找到任何解决方案

var predicate = PredicateBuilder.New<Foo>();

if (!string.IsNullOrEmpty(requestModel.code))
{
    predicate = predicate.And(x => x.code == requestModel.code);
}

if (string.IsNullOrEmpty(requestModel.code))
{
    //here I want to get all records from table
}

return await context.Foo
  .AsExpandable()
  .Where(predicate)
  .ToListAsync(cancellationToken);
c# .net predicate
1个回答
0
投票

使用 PredicateBuilder 时可以从传递真值开始:

var predicate = PredicateBuilder.New<Foo>(true);
© www.soinside.com 2019 - 2024. All rights reserved.