我正在填充网格。我在屏幕上有两个针对“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/