C#DataModel image列作为字节[0]从存储过程返回
我从SQLServer2008Express数据库生成了一个数据模型,并导入了一个存储过程作为函数导入,以从一个表中检索行,该表的返回值是该表的生成类型 该表中的一列是C#DataModel image列作为字节[0]从存储过程返回,c#,sql-server-2008,ado.net-entity-data-model,C#,Sql Server 2008,Ado.net Entity Data Model,我从SQLServer2008Express数据库生成了一个数据模型,并导入了一个存储过程作为函数导入,以从一个表中检索行,该表的返回值是该表的生成类型 该表中的一列是IMAGEdatatype,在它停止工作之前,我一直在正确地插入和检索这些图像。现在,ExecuteFunction返回请求的行,但图像字段返回为byte[0] 这发生在两台不同的计算机上,我已经从脚本中重新生成了数据库,但问题仍然存在,图像被正确插入(我已经使用DATALENGTH检查了字段长度,并且二进制内容的大小与我插入的图
IMAGE
datatype,在它停止工作之前,我一直在正确地插入和检索这些图像。现在,ExecuteFunction
返回请求的行,但图像字段返回为byte[0]
这发生在两台不同的计算机上,我已经从脚本中重新生成了数据库,但问题仍然存在,图像被正确插入(我已经使用DATALENGTH
检查了字段长度,并且二进制内容的大小与我插入的图像的大小一致)所以我假设这不是数据库或数据库服务器中的问题,而是数据模型的自动生成代码中的问题
编辑:
我已经创建了一个新项目,并在该项目中再次生成了数据模型,并且正在正确地检索图像。我回到了原来的项目,删除了数据模型,重新创建了一个新的数据模型,问题依然存在。一个项目和另一个项目之间的唯一区别是,原始项目将数据模型保存在类库中
有人知道会出什么问题吗?
image
数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用此数据类型,并计划修改当前使用它们的应用程序。改用varbinary(max)
。我已经将数据库中的数据类型更改为varbinary(MAX),问题仍然存在。显然,这是多线程的问题。我在一个线程中打开数据库连接,并在另一个线程中执行存储过程。由于一些我无法理解的原因,在从数据库检索二进制数据时,这样做会导致数据模型失败,即使所有操作都正确执行,没有错误或异常。