簡體   English   中英

Linq to SQL包含名稱搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM