[英]Linq to SQL Contains on name search
我正在其中具有全名列的SQL 2005 DB上搜索。 我希望能夠根據該列進行檢查並根據其相關性對結果進行排序。
我正在使用在SO上找到的不錯的訂購系統,但不幸的是,該訂購系統無法按我的意願工作,這似乎是因為“包含”功能不匹配。
這是代碼:
private static int QueryOrder(string query, string name)
{
if (name == query)
return -1;
if (name.Contains(query))
return 0;
return 1;
}
現在的問題是,這在以下情況下不起作用:
數據庫全名列數據: Joey JoeJoe Junior Shabbadoo
搜索查詢: Joey Shabbadoo
queryorder方法與“ contains”不匹配,因為它沒有看到全名字段包含查詢文本。
我訂購結果的方式是這樣的
peopleList = peopleList.OrderBy(p => QueryOrder(fullName, p.FullName)).ToList();
那么,有沒有辦法使用LINQ來做到這一點,還是我應該沿着存儲過程走下去?
LINQ是正確的。 “ 喬伊Shabbado”不contained
在搜索字符串。 為了使contains返回true,完整的字符序列必須與另一個字符串中的一個完整序列匹配。
根據定義為“匹配項”的內容,您可以轉到正則表達式,然后嘗試(1)拆分查詢,然后使用正則表達式與\\AJoey.+Shabbadoo\\z
進行匹配
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.