我想在Visual Studio中使用LINQ to SQL进行一个简单的搜索方法。在我的数据库中,我有“Firstname”和“Lastname”字段,而我的搜索字符串是“name”。我怎样才能做一个简单的LINQ查询来搜索这两个字段?在LINQ to SQL中搜索两列?
在普通的SQL我会做这样的事情:
我想在Visual Studio中使用LINQ to SQL进行一个简单的搜索方法。在我的数据库中,我有“Firstname”和“Lastname”字段,而我的搜索字符串是“name”。我怎样才能做一个简单的LINQ查询来搜索这两个字段?在LINQ to SQL中搜索两列?
在普通的SQL我会做这样的事情:
通常要做的事情是这样的:
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;
Blah殴打它:(+1 – Phill 2011-04-15 11:41:52
它的工作:)谢谢! – user709712 2011-04-15 11:43:20
+1在第二个代码框中的答案,但我想知道第一个框中的代码。我看不到有任何工作。例如: searchString =“First Last” 将不匹配如果名字表中包含“第一”和姓氏表中包含“最后” 我想你会需要拆分字符串的工作。 – rasmusvhansen 2011-04-15 11:48:34
// 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;
这与他的问题中的SQL无关。以我的名字为例。搜索我的全名将返回我在他的SQL,但不是在您的查询。 – 2011-04-15 11:42:15
var result = from p in db.Table
let fullname = p.FirstName + " " + p.Lastname
where fullname.Contains(searchString)
select new { Fullname = fullname };
感谢您的帮助! =) – user709712 2011-04-15 11:44:37
希望更多的人可以进一步阅读,因为当使用搜索字符串“Bob”,“Bob S”和“Bob Smith”时,此解决方案将找到Bob Smith。很好的答案,谢谢。 – 2017-11-10 09:04:25
那你尝试至今,为什么不工作? – 2011-04-15 11:35:41
我不知道如何在Linq中加入两个字段,所以还没有真正尝试过任何东西。 – user709712 2011-04-15 11:39:24