ADO.NET Entity framework 中 实体的对应数据库中text类型的问题 (更新)

在我们用ado.net entity framework 做数据层提交数据时如果对应数据库有字段为text  类型时在SSDL中映射为

  < Property  Name ="FBody"  Type ="text"   />

当提交时有时数据会出现提交出错,

错误代码为:

Server Error in '/' Application.
--------------------------------------------------------------------------------

传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 4 ("@1"): 数据类型 0xA7 的数据长度或元数据长度无效。 

Description: An unhandled exception occurred during the execution of the current web request

 Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.Data.SqlClient.SqlException: 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 4 ("@1"): 数据类型 0xA7 的数据长度或元数据长度无效。

 当我们将<Property Name="FBody" Type="text" />换成<Property Name="FBody" Type="nvarchar(max)" />

时就解决了上面的异常,(提交的FBODY内容是从WORD中拷出来的包括WORD自动生成的标签代码,奇怪的是当提交内容少一点也不会出现异常)。不知道entity framework 内对数据库的text类型是不是有别的处理, 具体是什么原因会出现在这种现象还不清楚,希望N人经过时给在下指点一下。

更新说明:

 数据库中的字段类型为 "ntext,text,varchar(max)" 类型的 在SSDL中映射 一定要改成 "nvarchar(max)" 如下:

 <Property Name="FBody" Type="text" />   

<Property Name="FBody" Type="text"/>

<Property Name="FBody" Type="varchar(max)"/> 都要换成<Property Name="FBody" Type="nvarchar(max)"/>

 

转载于:https://www.cnblogs.com/seebook/archive/2009/04/14/1435865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值