搜索下面的代碼片段允許用戶匹配表中的三個字段的字符串。如果任何字段匹配,則該條目包含在結果中。但是,使用Where篩選結果會導致「字符串必須匹配所有三個字段」,而不是「該字符串可以匹配任何三個字段」。Linq - 動態構建LINQ查詢時模擬OrWhere表達式?
動態構建LINQ查詢時是否有方法模擬OrWhere表達式?
var foundUsers = from UserInfo user in entities.UserInfo
select user;
if (searchCompleteName)
{
foundUsers = foundUsers.Where(u => u.CompleteName.Contains(searchString));
}
if (searchPortalID)
{
foundUsers = foundUsers.Where(u => u.PortalID.Contains(searchString));
}
if (searchUsername)
{
foundUsers = foundUsers.Where(u => u.UserIdentity.Contains(searchString));
}
PS。我正在使用實體框架和LINQ to Entities,並且正在做一個MVC3 Web應用程序。
參見我的[博客文章(http://blog.abodit.com/2013/02/creating-and-or-expressions-linq/)對於不需要'.AsExpandable替代()'。 – 2013-08-22 20:41:25