gpt4 book ai didi

c# - Linq to Entities - 多列搜索

转载 作者:行者123 更新时间:2023-11-30 20:23:49 25 4
gpt4 key购买 nike

我有一个具有 3 个可搜索属性的实体 Car:

Brand       Model            Code
----------- ---------------- -----------
Ferrari F40 X7844ADFS
Porsche 911 Turbo YSAD42313

我有以下方法:

public IEnumerable<Car> SearchCar(string search)
{
IEnumerable<Car> result = Enumerable.Empty<Car>().AsEnumerable();

if (!string.IsNullOrEmpty(search))
{
var preResult = from A in _context.Cars
select new { TextField = A.Brand + " " + A.Model + A.Code,
car = A};
result = preResult.Where(x => x.TextField.ToLower().Contains(searchValue.ToLower())).Select(v => v.Car);
}
return result;
}

搜索示例:

  • 保时捷 Turbo
  • 法拉利
  • YSAD42313

但是,此方法不适用于第一个 (Porsche Turbo)。有没有办法做到这一点,以便它在所有情况下都能正常工作?

最佳答案

您需要拆分 search 变量中的不同词,然后单独搜索这些词。像这样:

var splitSearch = search.Split(' ');
result = preResult.Where(x => splitSearch.All(s => x.TextField.ToLower().Contains(s)))
.Select(v => v.Car);

关于c# - Linq to Entities - 多列搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987266/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com