我已經想出瞭如何使用LINQ做sql條件查詢,我也想出瞭如何OR where子句。不幸的是,我無法弄清楚如何同時做到這一點。我可以做一個有條件的where子句是這樣的:有條件的地方或條件linqtosql
var ResultsFromProfiles = from AllPeeps in SearchDC.aspnet_Users
select AllPeeps;
if (SearchFirstNameBox.Checked)
{
ResultsFromProfiles = ResultsFromProfiles.Where(p => p.tblUserProfile.FirstName.Contains(SearchTerm));
}
if (SearchLastNameBox.Checked)
{
ResultsFromProfiles = ResultsFromProfiles.Where(p => p.tblUserProfile.LastName.Contains(SearchTerm));
}
這將讓我在哪裏,名字和姓氏包含搜索項目的任何文件。
或者我可以這樣做:
var ResultsFromProfiles = from p in SearchDC.aspnet_Users
where p.tblUserProfile.LastName.Contains(SearchTerm) ||
p.tblUserProfile.FirstName.Contains(SearchTerm)
select p;
這將讓我在那裏的第一個名字或姓氏包含搜索詞的任何配置文件。
我有一堆複選框,用戶可以在其中指定他們想要搜索的搜索字詞,所以我希望能夠構建一個有條件添加它們的查詢,如上面的第一個代碼片段所示,但將它們添加爲OR,以便它們像第二個片段一樣工作。這樣它將搜索指定字段中任何位置的任何匹配項。
任何提示?
OMG我不知道那個predicateBuilder – Matias 2009-12-17 02:16:37
哦,看起來不錯。特別是與其他建議相比(請參閱下面的條目) – 2009-12-17 02:21:32
輝煌,這正是我所需要的,非常簡單/優雅。 謝謝 – Adam 2009-12-17 20:33:26