2011-04-20 51 views
1

我有一個搜索頁面,用戶可以輸入多個城市,用逗號分隔,我們需要獲取所有房地產屬性,其中城市是一個輸入搜索條件。例如,用戶將進入這樣的事情LINQ - 如何使用NHibernate進行多條件的部分搜索.LINQ

城市=達拉斯,奧斯汀

查詢人有我精的作品,如果用戶輸入一個完整的城市名

VAR cityList =新列表{「達拉斯」 「奧斯汀」}; var properties = Reporsitory.AsQueryable 。Where(x => cityList.Contains(x.City)) .ToList();

但是,如果我只是輸入Dal,Aus不起作用。我怎樣才能使這些部分搜索工作。動態LINQ是唯一的答案嗎?謝謝!

回答

0

試試這個

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

嘗試在字符串中搜索,我希望它的工作原理

+0

這沒有奏效。包含不喜歡lambda表達式。我使用任何而不是那,但也沒有工作。 – user629161 2011-04-20 14:22:32

0

我不專門爲NHibernate的知道,但LINQ到SQL不支持這一點:

.Where(x=> x.StartsWith("Dal")) 
0
var properties = Reporsitory.AsQueryable().Where(x => cityList.Count(c => x.StartsWith(c)) != 0); 

或將StartWith替換爲包含...