Can Entity Framework(LINQ)可以根据JSON where子句选择行吗?

时间:2017-08-27 00:16:31

标签: sql json entity-framework linq .net-core

我在JSON数据的SQL数据库表中有一列。我可以使用Entity Framework和LINQ根据SQL JSON列中的字段/值进行查询和过滤吗?

我正在使用SQL 2016,VS 2017,EF Core 2.0,.NET Core 2.0。

感谢。

1 个答案:

答案 0 :(得分:3)

Brian提供了一些很好的选择链接。我认为这些仍需要您完全接收SQL数据,然后在.NET代码中应用过滤;我真的想过滤掉SQL服务器端的东西,避免拉回所有行,然后过滤。

此外,因为我的JSON数据可以为每一行提供不同的属性,所以使用SQL Server进行过滤最好。

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

var blogs = _context.Blogs
  .FromSql<Blog>(@"SELECT * FROM Blogs WHERE JSON_VALUE(Owner, '$.Name') = {0}", Owner)
  .ToList();