【发布时间】:2009-10-15 06:09:41
【问题描述】:
我正在尝试使用动态 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')
【问题讨论】:
标签: c# linq linq-to-sql dynamic-linq