0
表B有一個名爲'tagged'的字段。它是一串用逗號分隔的數字,例如
select where逗號分隔字符串字段包含字符串列表中的值
454545,324512,234,345234
IDLIST長號碼列表。
我想獲得(清單)B中的所有項目,其「標記」字段中的數字之一包含在idLIST中。
嘗試:
context.B.Where(b => b.tagged.Split(',').ToList().Any(t => idList.ConvertAll<string>(f => f.ToString()).Contains(t))).ToList();
給我帶一個例外:
System.String[] Split(Char[])' has no supported translation to SQL
:(
(請注意,我知道我可以事先一長串轉換成字符串列表,在查詢之外,但與問題無關:))。
這是EF嗎? lambda可以執行什麼操作有嚴格的限制,因爲它必須轉換爲SQL – 2013-04-09 20:35:30
它會有可怕的性能,但是您可以使用Like(',324512,')做一些事情,儘管我不確定你會怎麼做那在linq-to-sql中。 – 2013-04-09 20:37:13
首先,您不應將逗號分隔值存儲在關係表中。考慮重新設計(標準化)你的數據模型。 – 2013-04-09 20:51:52