Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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
Sql 实体框架(LINQ)可以基于JSON where子句选择行吗?_Sql_Json_Entity Framework_Linq_.net Core - Fatal编程技术网

Sql 实体框架(LINQ)可以基于JSON where子句选择行吗?

Sql 实体框架(LINQ)可以基于JSON where子句选择行吗?,sql,json,entity-framework,linq,.net-core,Sql,Json,Entity Framework,Linq,.net Core,我在一个包含JSON数据的SQL数据库表中有一列。我可以使用实体框架和LINQ根据SQL JSON列中的字段/值进行查询和筛选吗 我使用的是SQL 2016、VS 2017、EF Core 2.0、.NET Core 2.0。Brian提供了一些指向一些好选项的链接。我认为这些仍然需要您完全接收SQL数据,然后在.NET代码中应用过滤;我真的很想在SQL server端进行筛选,避免将所有行都向后拉,然后再进行筛选 此外,由于我的JSON数据每行可以有不同的属性,因此使用SQL Server进行

我在一个包含JSON数据的SQL数据库表中有一列。我可以使用实体框架和LINQ根据SQL JSON列中的字段/值进行查询和筛选吗


我使用的是SQL 2016、VS 2017、EF Core 2.0、.NET Core 2.0。

Brian提供了一些指向一些好选项的链接。我认为这些仍然需要您完全接收SQL数据,然后在.NET代码中应用过滤;我真的很想在SQL server端进行筛选,避免将所有行都向后拉,然后再进行筛选

此外,由于我的JSON数据每行可以有不同的属性,因此使用SQL Server进行过滤是最好的

我将选择在LINQ per Brian的代码项目参考中使用SQL语句:

var blogs = _context.Blogs
  .FromSql<Blog>(@"SELECT * FROM Blogs WHERE JSON_VALUE(Owner, '$.Name') = {0}", Owner)
  .ToList();
var blogs=\u context.blogs
.FromSql(@“SELECT*FROM blog,其中JSON_值(所有者,$.Name')={0},所有者)
.ToList();

请参见此答案:本文指出Sql Server可以查询JSON值列,但LINQ不能:Brian,关于代码项目的参考非常有用。因为我的JSON对于每一行实际上是不同的,所以使用.FromSql(利用SQL JSON_值)用T-SQL来解决这个问题似乎是最好的选择。有没有办法检查数组中是否存在SQL中JSON数据的项?