我正在尝试从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库进行序列化。
谢谢!
答案 0 :(得分:2)
如果可能,请更改字段类型和/或使用正确的ADO.NET参数类型来绑定数据。
传统上,我会使用 TEXT 类型,但是如今已弃用,因此您可以使用:
NVARCHAR(MAX)
答案 1 :(得分:1)
SQL Server NVARCHAR(MAX)
数据类型最多可以存储2GB。
您应将NVarChar的大小设置为-1
:
new SqlParameter("@returnVal", System.Data.SqlDbType.NVarChar, -1)