Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Json_值的Sql参数指定属性名?_Json_Sql Server_Entity Framework_Json Value - Fatal编程技术网

通过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年,我会没事吧?”在我的链接中,有相同代码与不同版本的演示