【问题标题】:Linq contains()Linq 包含()
【发布时间】:2014-04-22 09:20:05
【问题描述】:

我正在实现一个搜索按钮,它会拉出所有具有用户将在文本框中输入的词的产品。

说用户类型:鞋子。

我编写了我的 linq 来查询数据库以返回所有包含关键字的产品,如下所示

var products = from x in db.Products
where x.SupplierId == loggedInUser &&
( x.Status.ToString().Contains(searchCriteria) || 
x.SupplierCode.Contains(searchCriteria) ||
x.ProductId.ToString().Contains(searchCriteria) || 
x.Barcode.Contains(searchCriteria) ||
x.Description.Contains(searchCriteria) ||
x.ProposedActiveDate.ToString().Contains(searchCriteria) ||
x.VATRate.ToString() .Contains(searchCriteria) )
select x;

问题?

我没有从数据库中得到任何产品(数据库中有产品)。

我做错了什么?

【问题讨论】:

  • 我认为可能是两件事:SupplierId 不匹配loggedInUser,或区分大小写。

标签: database linq contains


【解决方案1】:

我觉得你的顺序错了……

如果用户输入了 shoes, boots,那么您需要拆分搜索词“shoes”和“boots”并将它们添加到列表中然后执行以下操作

SearchTermsList.Contains(x.Status.ToString()) ||   SearchTermsList.Contains(x.SupplierCode) 

【讨论】:

    【解决方案2】:
      var searchCriteriaLowerCase = lowerCase.ToLower(); 
      var products = db.Products.Where(x=> x.SupplierId == loggedInUser &&
      x.Status.ToLower().ToString().Contains(searchCriteriaLowerCase) || 
      x.SupplierCode.ToLower().Contains(searchCriteriaLowerCase) ||
      x.ProductId.ToLower().ToString().Contains(searchCriteriaLowerCase) || 
      x.Barcode.ToLower().Contains(searchCriteriaLowerCase) ||
      x.Description.ToLower().Contains(searchCriteriaLowerCase) ||
      x.ProposedActiveDate.ToString().Contains(searchCriteria) ||
      x.VATRate.ToLower().ToString().Contains(searchCriteria) ).ToList();  
    

    这可能有效。

    【讨论】:

      【解决方案3】:

      我认为您没有执行查询。

      这样使用。

      var products = from x in db.Products
      where x.SupplierId == loggedInUser &&
      ( x.Status.ToString().Contains(searchCriteria) || 
      x.SupplierCode.Contains(searchCriteria) ||
      x.ProductId.ToString().Contains(searchCriteria) || 
      x.Barcode.Contains(searchCriteria) ||
      x.Description.Contains(searchCriteria) ||
      x.ProposedActiveDate.ToString().Contains(searchCriteria) ||
      x.VATRate.ToString() .Contains(searchCriteria) )
      .ToList();
      

      【讨论】:

      • 您遇到的错误是什么?删除 ToString() 方法并尝试。我认为 .net ToString() 不适用于数据库查询。
      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 2011-02-21
      • 2015-11-04
      • 1970-01-01
      • 2016-11-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多