LINQ - 如何使用NHibernate.LINQ对多个条件进行部分搜索

时间:2011-04-20 13:36:23

标签: linq linq-to-nhibernate dynamic-linq

我有一个搜索页面,用户可以在其中输入以逗号分隔的多个城市,我们需要获取所有房地产属性,其中城市是在搜索条件中输入的城市。例如,用户将输入类似这样的内容

cities =达拉斯,奥斯汀

如果用户输入完整的城市名称

,我的查询工作正常

var cityList = new List {“Dallas”,“Austin”}; var properties = Reporsitory.AsQueryable     .Where(x => cityList.Contains(x.City))     .ToList();

但是,如果我只输入Dal,Aus它不起作用。如何使这些部分搜索起作用。动态LINQ是唯一的答案吗?谢谢!

3 个答案:

答案 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 ...