我正在尝试使用动态 LINQ 查询来查询 SQL 数据库,并且在 Where 子句中,我需要使用 TEXT 类型的字段评估“=”条件。
现在,我有这个:
var result = DBCon.PcInValue
.Where(String.Format("InputName = @0 and InputValue) {0} @1", f.Condition), f.Field, f.Value)
.Select("new(OrderNum, OrderLine)");
这不起作用,因为您不能在 TEXT 数据类型上使用等于运算符。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')