c# - 用于过滤记录的 Entity Framework Linq 查询

标签 c# linq entity-framework

我正在填充网格。我在屏幕上有两个针对“MerchantName”和“MerchantId”列的过滤器。如果过滤器为空并且按下搜索按钮,则应显示所有记录,否则如果任何过滤器具有值,则应根据该值过滤记录。我正在使用 Entity Framework 来提取数据。

merchantsList = dbContext.MERCHANT.Where();

这是我的实体,我如何在 where 子句中执行此操作。 MerchantName 为 string 类型,merchant Id 为 Int。

最佳答案

将 INPUT_MERCHANTNAME 和 INPUT_ID 替换为请求值。

var merchantName = INPUT_MERCHANTNAME;
int? id = INPUT_ID;

merchantsList = dbContext.MERCHANT.Where(x =>
  (id.HasValue ? x.Id == id.Value : true) ||
  (!(merchantName == null || merchantName  == "") ? x.MerchantName.Equals(merchantName) : true));

如果 id 和merchantName 都为 null/空,这将为您提供所有记录,并且如果指定了它们,则会进行过滤。

关于c# - 用于过滤记录的 Entity Framework Linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32135159/

相关文章:

c# - 如何在接口(interface)上创建一般约束属性?

c# - 如何从 Type 的名称中获取 Type 对象?

c# - Azure 存储分析日志解析错误

c# - 如何从 IGrouping 中获取值

c# - 使用具有可分配 Func 委托(delegate)的对象的基于树的数学表达式

c# - 为什么 Linq 不提供 lambda 参数而不是 IEqualityComparer<T>?

c# - EF Core Find 方法等效于多个记录?

C# 重构巨大的 switch 语句以使用 LINQ 进行排序

c# - 服务器的图像文件路径不是 C : drive MVC5

c# - DbQuery 与 IQueryable SQL 性能对比