【发布时间】:2019-12-07 06:16:34
【问题描述】:
Json 字符串更新为 SQL Server 的列之一,我想要符合我的条件的行并将其存储到集合中。在这种情况下,我将条件应用于 json 键/名称以获取数据。我借助sqlquery 函数在实体框架中实现了它。但我试图找到针对相同情况的其他选项,可能是 linq 或 lambda。
例如它是一个包含 3 列的电影表,其中 Movie_info 列是一个包含 Json 字符串的 NVarChar。
id: 1
Storyline: "Blah Blah!!"
Movie_info [{"title":"The Shawshank Redemption","year":1994,"cast":["Morgan
Freeman", "Tim Robbins"]}]`
id: 2
Storyline: "free from corruption."
Movie_info [{"title":"Batman Begins","year":2005,"cast":[],"Director":
"Christopher Nolan"}]
.
..
...
我正在尝试过滤 2005 年发行的电影。下面是我尝试过的代码,它成功了。
using (MoviesDbContext ctx = new MoviesDbContext())
{
var movieList = ctx.Movies.SqlQuery("SELECT * FROM [Movie].[dbo].[Movies]
WHERE JSON_VALUE(Movie_info, '$.year') = @value",
new SqlParameter("@value", 2005)).ToList();
}
通过这段代码,我得到了 2005 年发布的电影列表。我怎样才能使用 Lambda 或使用 Linq 查询来实现相同的目标,因为我不想将 SQL 语句硬编码到控制器中......
我期待同样的结果。非常感谢您对任何其他方法的建议..
【问题讨论】:
标签: c# .net json sql-server entity-framework