我正在填充网格。屏幕上有两个针对“ MerchantName”和“ MerchantId”列的过滤器。如果过滤器为空并按下搜索按钮,则应显示所有记录,否则,如果任何过滤器具有值,则应在该记录上进行过滤。我正在使用实体框架提取数据。
merchantsList = dbContext.MERCHANT.Where();
这是我的实体,该如何在where子句中进行操作。 MerchantName是字符串类型,而商家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和商人名称均为空/空,这将为您提供所有记录,如果指定了它们,则将对其进行过滤。
关于c# - Entity Framework Linq查询以过滤记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32135159/