调用XML存储过程的实体框架致电2033个字符截断
-
14-09-2020 - |
题
我有一个存储过程,它在它结束时使用一个用于XML语句,并返回一些XML。
我正在使用.NET 4和实体框架,当我执行此存储过程的函数导入时,尝试通过它截断2033个字符的实体框架调用它。
我将实体框架交换了传统的ADO.NET方法来调用具有相同问题的存储过程 - 截断在2033个字符中 - 这是我遇到以下MSDN文章,解释这是通过设计和使用“ExecutexmlReader”方法克服它:
http://support.microsoft.com/kb/310378
所以这是现在工作的作为临时修复,但我想使用实体框架函数导入,所以我没有用ef代码混淆了ado.net代码。
有些方法可以在EF中使用功能导入,返回XML并克服2033个字符限制?
关于
BGS264
解决方案
我今天跑进了同样的问题。
EF函数调用返回2033长的字符串“块”(例如,如果您的XML长时间,您将收到3个结果:2033个字符中的2个,共有934个字符中的1个)
您可以轻松地附加这些块以返回XML的完整列表。
其他提示
我升压了Fermin的答案。响应Dementic(和其他人),这是一个代码片段。
从此:
using (var db = new MyEntities())
{
IEnumerable<string> results = db.GetSomeXML(ProductCode);
return results.FirstOrDefault();
}
.
到这个:
using System.Text; //For the StringBuilder
using (var db = new MyEntities())
{
StringBuilder retval = new StringBuilder();
IEnumerable<string> results = db.GetSomeXML(ProductCode);
foreach (var result in results)
retval.Append(result);
return retval.ToString();
}
. 不隶属于 StackOverflow