我有一个搜索页面,用户可以在其中输入以逗号分隔的多个城市,我们需要获取所有房地产属性,其中城市是在搜索条件中输入的城市。例如,用户将输入类似这样的内容
cities =达拉斯,奥斯汀
如果用户输入完整的城市名称
,我的查询工作正常var cityList = new List {“Dallas”,“Austin”}; var properties = Reporsitory.AsQueryable .Where(x => cityList.Contains(x.City)) .ToList();
但是,如果我只输入Dal,Aus它不起作用。如何使这些部分搜索起作用。动态LINQ是唯一的答案吗?谢谢!
答案 0 :(得分:0)
试试这个
var cityList = new List{"Dallas", "Austin"};
var properties = Reporsitory.AsQueryable
.Where(x=> cityList.Contains(y => x.City.Contains(y)).ToList();
尝试在字符串中搜索,我希望它能正常工作
答案 1 :(得分:0)
我不是专门针对nHibernate,但Linq to SQL支持这一点:
.Where(x=> x.StartsWith("Dal"))
答案 2 :(得分:0)
var properties = Reporsitory.AsQueryable().Where(x => cityList.Count(c => x.StartsWith(c)) != 0);
或者将StartWith替换为Contains ...