1

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

城市 = 达拉斯,奥斯汀

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

var cityList = new List{"达拉斯", "奥斯汀"}; var 属性 = Reporsitory.AsQueryable .Where(x=> cityList.Contains(x.City)) .ToList();

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

4

3 回答 3

0

尝试这个

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

尝试在字符串中搜索,我希望它有效

于 2011-04-20T13:43:02.070 回答
0
var properties = Reporsitory.AsQueryable().Where(x => cityList.Count(c => x.StartsWith(c)) != 0);

或将 StartWith 替换为 Contains...

于 2011-04-20T13:46:41.057 回答
0

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

.Where(x=> x.StartsWith("Dal"))
于 2011-04-20T13:43:37.717 回答