通过Json_值的Sql参数指定属性名?
我有这个通过Json_值的Sql参数指定属性名?,json,sql-server,entity-framework,json-value,Json,Sql Server,Entity Framework,Json Value,我有这个 var d = $"'$.{ propertyName}'"; var propertyNameParam = new SqlParameter("@propertyName", d); var sql = "select * FROM Items WHERE JSON_VALUE(Attributes, @propertyName) like '%5151515151%'"; count = dbContext.Items.FromSql(sql, propertyName
var d = $"'$.{ propertyName}'";
var propertyNameParam = new SqlParameter("@propertyName", d);
var sql = "select * FROM Items WHERE JSON_VALUE(Attributes, @propertyName) like '%5151515151%'";
count = dbContext.Items.FromSql(sql, propertyNameParam).Count();
但是我得到了这个错误
System.Data.SqlClient.SqlException:“JSON_值或JSON_查询”的参数2必须是字符串文字。”
但我把它放在第一行的单引号中。-它可能是可变的,但您需要SQL Server 2017/Azure SQL DBSo在SQL Server 2016中实现这一点的唯一方法我必须通过字符串连接来实现?是的,但您将向SQL注入公开您的网站,但在2017年,我会同意我写的内容吗?在我写这篇文章之前,我一直想知道为什么我会犯这个错误,因为我认为这个领域是有效的。现在我看到我部署的服务器也有2016年,我一直在使用2017年…感叹“但在2017年,我会没事吧?”在我的链接中有演示与相同代码不同的版本-它可能是可变的,但您需要SQL Server 2017/Azure SQL DBSo在SQL Server 2016中实现这一点的唯一方法我必须通过字符串连接来完成?是的,但你会将你的网站暴露于SQL注入中,但在2017年,我写的对吗?在我写这篇文章之前,我一直想知道为什么我会犯这个错误,因为我认为这个领域是有效的。现在我看到,我部署的服务器也有2016年,我一直在使用2017年……感叹“但在2017年,我会没事吧?”在我的链接中,有相同代码与不同版本的演示