我想在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