【发布时间】:2022-01-14 13:00:56
【问题描述】:
尝试将列设置为FromRawSql 中的参数。查询总是返回 null,我理解这是因为 SQL 是在设置参数值之前编译的。如何将列名作为参数传递到查询中?
我正在尝试什么:
var param = new SqlParameter[] {
new SqlParameter("@col", dataDiscriminator),
new SqlParameter("@value", itemDiscValue)
};
var thisq = context.Devices.FromSqlRaw("SELECT * FROM Devices WHERE @col = @value", param);
var thisDevice = thisq.SingleOrDefault();
将产生 SQL:
DECLARE @col nvarchar(4) = N'Name';
DECLARE @value nvarchar(26) = N'Registration Template';
SELECT * FROM Devices WHERE @prop = @value
【问题讨论】: