繁体   English   中英

如何在 EF Core 5 中使用 JSON output 调用存储过程

[英]How to call a stored procedure with JSON output in EF Core 5

我有一个带有 JSON 格式 output 的存储过程。 您知道 JSON 格式 output 是字符串格式。

数据库上下文 object 仅返回表类型。

前任:

_context.tableA.FromSqlRaw()

但是我的场景除了字符串没有任何类型。

如何使用字符串 output 调用此存储过程并将结果呈现给客户端?

你必须使用 output 参数

var output = new SqlParameter();
output.ParameterName = "@jsonOutput";
output.SqlDbType =  SqlDbType.NVarChar;
output.Direction = ParameterDirection.Output;

var param1 = new SqlParameter();
output.ParameterName = "@ID";
output.SqlDbType = SqlDbType.Int;


await _context.Database.ExecuteSqlRawAsync(
"EXEC dbo.SpName @ID={0} @jsonOutput={1} OUT", param1,output);

var json =output.Value;

存储过程

...
SET @jsonOutput = (SELECT ....
    FROM ...
    FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM