0
我正在嘗試使用動態LINQ查詢來查詢SQL數據庫,並在Where子句中需要使用TEXT類型的字段來計算'='條件。動態LINQ API - SQL轉換函數
現在,我有這樣的:
var result = DBCon.PcInValue
.Where(String.Format("InputName = @0 and InputValue) {0} @1", f.Condition), f.Field, f.Value)
.Select("new(OrderNum, OrderLine)");
這不起作用,因爲你不能用等號操作上的一個文本數據類型。 類型爲TEXT的字段是「InputValue」。我試圖像這樣轉換它:
var result = DBCon.PcInValue
.Where(String.Format("InputName = @0 and Convert(nvarchar(100), InputValue) {0} @1", f.Condition), f.Field, f.Value)
.Select("new(OrderNum, OrderLine)");
但它看起來像這不支持。
任何人有任何線索,我該如何做到這一點?
編輯: 下面的SQL語法的工作原理沒有問題,但我又不敢肯定,如果這是可能使用動態LINQ API:
SELECT [t0].[OrderNum], [t0].[OrderLine]
FROM [PcInValue] AS [t0]
WHERE ([t0].[InputName] = 'OpenWidthFt') AND (Convert(nvarchar(100), [t0].[InputValue]) = '10')
它似乎沒有工作。結果查詢與以前相同: SELECT [t0]。[OrderNum],[t0]。[OrderLine] FROM [PcInValue] AS [t0] WHERE([t0]。[InputName] ='OpenWidthFt' )AND([t0]。[InputValue] ='10') – Overhed 2009-10-15 12:29:01
奇數。只是爲了確保,當你省略'.ToString()'時,你會收到什麼錯誤信息?我得到「SQL Server不處理NText,Text,Xml或Image數據類型的比較。」這是在擊中SQL Server 2005(Express)實例時。 – 2009-10-15 14:27:09
我收到一條類似的錯誤消息,說NVarChar to Text與等號運算符沒有可比性。 – Overhed 2009-10-15 14:54:58