我想在相關實體上進行部分屬性匹配的文本搜索。部分linq文本搜索包含
我的實體是:
public class TradeContact
{
[Key]
public int TradeContactId { get; set; }
public virtual ICollection<Region> Regions { get; set; }
}
public class Region
{
[Key]
public int RegionId { get; set; }
public virtual ICollection<TradeContact> TradeContacts { get; set; }
}
我的目標是,如果一個TradeContact具有以下區域:悉尼,布里斯班,達爾文,那麼我應該能夠搜索「席德」來檢索TradeContact記錄。
目前我正在尋找這樣的:
TradeContacts = TradeContacts
.Where(s => s.Regions.Select(x => x.Name.ToUpper())
.Contains(searchString.ToUpper()));
這個代碼是找到完整的比賽,所以「悉尼」將返回我的TradeContact,但它並沒有對部分匹配工作。
我做錯了什麼?
@wudzik這不是該問題的重複。 OP已經知道如何執行比較,他們正在詢問如何使用LINQ在字符串列表上執行比較。更確切地說,他們詢問當前的解決方案有什麼問題,因爲它與部分匹配不匹配。 – Abion47
好吧,直到這個問題得不到解決,這裏是你的工作代碼,並且道歉我不能更好地將它格式化爲一個註釋:'TradeContacts = TradeContacts.Where(s => s.Regions.Any(r => r.Name .ToUpper()。Contains(searchString.ToUpper())));' – Abion47
@wudzik這個問題與你以_any_方式標記爲重複的問題無關。 – Evk