我遇到了EF 6的问题。我在SQL Server中有一个存储过程,它从表中返回varbinary(max)
类型的值:
PROCEDURE [pr_Service_Get]
(@file_id uniqueidentifier,
@file_content varbinary(MAX) OUTPUT)
AS
BEGIN
SET @file_content = (SELECT file_content
FROM ...
WHERE id = @file_id)
END
我有这个C#代码:
var output = new ObjectParameter("file_content", typeof(byte[]));
using (var ctx = _dbContext)
{
ctx.pr_Service_Get(file_id, output);
}
return (byte[])output.Value;
问题是输出值始终为空。但是,如果我在SQL Server Management Studio中执行此存储过程,则会返回正确的值。
此外,我正在查看SQL Server Profiler以查看发送到SQL Server的内容。查询正确并返回正确的值。
任何人都可以帮我解决这个问题吗?