随笔 - 41,  文章 - 4,  评论 - 342,  阅读 - 10万

在我们用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)"/>

 

posted on   micenter  阅读(1230)  评论(3编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端

< 2009年4月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9
点击右上角即可分享
微信分享提示