我已经想出了如何使用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