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

LINQ-如何使用NHibernate.LINQ对多个条件进行部分搜索,linq,linq-to-nhibernate,dynamic-linq,Linq,Linq To Nhibernate,Dynamic Linq,我有一个搜索页面,用户可以输入多个以逗号分隔的城市,我们需要获得所有的房地产属性,其中城市是一个在搜索条件中输入的城市。例如,用户将输入如下内容 城市=达拉斯、奥斯汀 如果用户输入完整的城市名称,我的查询就可以正常工作 var cityList=新列表{达拉斯,奥斯汀}; var属性=reportory.AsQueryable .Wherex=>cityList.Containsx.City 托利斯特先生 然而,如果我只是进入Dal,因为它不起作用。我如何才能使这些部分搜索工作。动态LINQ是唯

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

城市=达拉斯、奥斯汀

如果用户输入完整的城市名称,我的查询就可以正常工作

var cityList=新列表{达拉斯,奥斯汀}; var属性=reportory.AsQueryable .Wherex=>cityList.Containsx.City 托利斯特先生

然而,如果我只是进入Dal,因为它不起作用。我如何才能使这些部分搜索工作。动态LINQ是唯一的答案吗?谢谢

试试这个

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

尝试在字符串内部搜索,我希望它能工作

我不知道是否专门针对nHibernate,但Linq to SQL确实支持这一点:

.Where(x=> x.StartsWith("Dal"))

或者将StartWith替换为包含…

但不起作用的。Contains不喜欢lambda表达式。我用了Any来代替那个,但那个也不起作用。
var properties = Reporsitory.AsQueryable().Where(x => cityList.Count(c => x.StartsWith(c)) != 0);