Sql 实体框架(LINQ)可以基于JSON where子句选择行吗?
我在一个包含JSON数据的SQL数据库表中有一列。我可以使用实体框架和LINQ根据SQL JSON列中的字段/值进行查询和筛选吗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进行
我使用的是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数据的项?