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

10-13 06:10