在人的查詢,這句話應該返回一個數字,有「和」他們最後的名字 -意外的行爲包含方法
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.Contains("And");
它不返回任何結果的結果。如果我們將其更改爲
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.Contains("Anderson");
我們得到所有擁有安德森姓氏的人。
顯然它正在被轉換爲SQL而不是Like。此外,我們還修改了它是─
var results = repository.GetQuery().Where(p => p.Names
.Select(n=> n.LastName)
.FirstOrDefault()
.Contains("And");
返回所有誰擁有的人「和」隨時隨地有姓氏,可惜它只檢查的人的第一個姓氏。
var results = repository.GetQuery().Where(p => p.Names
.Any(n=> n.LastName
.Contains("And"));
正常工作,但我們不能按照我們想要的方式使用它。
你應該解釋你想用什麼方式,因爲只有最後一個查詢是正確的。 – 2011-03-18 22:04:48
您可能希望全文搜索,這是afaik在LINQ to Entities中不受支持,您將不得不使用商店查詢推出自己的 – BrokenGlass 2011-03-18 22:17:23
我們正在構建動態查詢,並且它們都包含在Where方法中。動態查詢由1. Property,2. ComparisonOperator(==,<=,Contains等)組成。3. Value。然後,我們鏈接多個搜索表達式的語句/方法。所以我們試圖讓所有的東西都適合Where方法,這樣它就可以被正確地解析。 – 2011-03-18 22:23:18