我有這樣的代碼實體:C#實體框架做字節數組包含在LINQ字符串where子句
context.myTable.Where(x => x.myByteArray.Contains(myString)).Load();
它不工作,因爲字節數組沒有「包含」的定義。所以,我想要做這樣的事情:
context.myTable.Where(x => Encoding.Default.GetString(x.myByteArray).Contains(myString));
這也並沒有因爲異常的工作:
LINQ到實體無法識別方法「System.String的GetString(字節[]) '方法,並且此方法不能轉換爲商店表達式。
我怎樣才能在我的字節數組中搜索字符串,然後使用Linq-to-Entities?
我不確定你真的可以做到這一點。您可以嘗試將myByteArray放入列表中:x.myByteArray.ToList()。Contains(myString)。但是風險在於你將加載所有數據庫......無論如何你無法比較這兩個字符串,因爲字節不是字符串...... – JBO
'SqlFunctions.CharIndex'。 –
您應該有實際支持文本的不同SQL列類型(如'varchar(max)')。嘗試構建一個與你試圖用EF做什麼相當的SQL查詢...如果你不能這樣做,那麼EF可能也會失敗。 – grek40