在LINQ to SQL中搜索两列?

我试图在Visual Studio中使用LINQ to SQL创建一个简单的搜索方法。 在我的数据库中,我有“Firstname”和“Lastname”字段,我的搜索字符串是“name”。 如何创建一个搜索这两个字段的简单LINQ查询?

在纯SQL中我会做这样的事情:

SELECT (Firstname + Lastname) as 'Fullname' FROM table WHERE Fullname LIKE '%searchstring%' 

通常要做的是:

 var users = from user in db.Users where user.FirstName.Contains(searchString) || user.LastName.Contains(searchString) select user; 

但是,这不等同于您的SQL查询。 以下是等效的:

 var users = from user in db.Users let fullName = user.FirstName + user.LastName where fullName.Contains(searchString) select user; 
 var result = from p in db.Table let fullname = p.FirstName + " " + p.Lastname where fullname.Contains(searchString) select new { Fullname = fullname }; 
 // get all items from table where firstname like searchstring or lastname like searchstring var result = from p in db.Table where (p.Firstname.Contains(searchString) || p.Lastname.Contains(searchString)) select p;