c# - 有没有办法从 SQL Server 获取大量 JSON?

标签 c# t-sql asp.net-core ef-core-2.1

我正在尝试从 Microsoft SQL Server 中获取 JSON,为了与我的 ASP.NET Core 后端通信,我似乎只能使用 NVARCHAR 允许的最大大小最多 8,000 个字符。但我需要抓取一个包含数万个字符的 JSON 列表。

var @params = new SqlParameter[] {
            new SqlParameter("@returnVal", System.Data.SqlDbType.NVarChar, 8000) { Direction = System.Data.ParameterDirection.Output },
            new SqlParameter("@ID", libraryID)
};

await this.Database.ExecuteSqlCommandAsync("SET @returnVal = (SELECT * FROM Rates WHERE LibraryID=@ID FOR JSON AUTO)", @params);
return @params[0].Value as string;

我预计上述代码的输出为 8,000 个字符,因为这似乎是 SQL 限制。有没有办法取回所有数据?

我的目标是尝试从数据库中以 JSON 形式下载大量数据,而不必将其映射到 POCO,然后使用第三方 JSON 库对其进行序列化。

谢谢!

最佳答案

如果可能,请更改字段类型和/或使用正确的 ADO.NET 参数类型来绑定(bind)数据。

传统上我会使用 TEXT 类型,但现在已弃用,因此您可以使用:

NVARCHAR(MAX)

关于c# - 有没有办法从 SQL Server 获取大量 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57223330/

相关文章:

c# - WPF 中的 DirectX11 中的 SharpDX 2.5

c# - 如何使用类中的数据制作 Crystal 报表?

C# null - 它是一个对象吗

c# - C#中Lastindexof和Remove的使用用于数据库混淆

t-sql - 获取一个链接服务器属性

SQL - 如果某个值等于某个数字,则行数应等于该某个数字

asp.net-core - 使用命令行调用 IISExpress 来托管 ASP.NET Core 应用程序

sql-server - 如何自动填充 SQL Server 列

c# - 具有重定向到 127.0.0.1 的 spotify 身份验证回调 url 的 Aspnet Core MVC 应用程序

javascript - Visual Studio 单页应用程序集成