문제

I의 끝에있는 XML 문을 사용하는 저장 프로 시저가 있고 일부 XML을 반환합니다.

.NET 4 및 엔티티 프레임 워크를 사용하고 있으며이 저장 프로 시저의 함수 가져 오기를 수행하고 엔티티 프레임 워크를 통해 호출하려고하면 2033 자의 리턴을 자릅니다.

I 전통적인 ADO.NET 접근법을 위해 엔티티 프레임 워크를 교체하여 2033 자의 동일한 문제가있는 저장 프로 시저를 호출합니다. 다음 MSDN 문서를 설명하는 다음 MSDN 문서에서 다음과 같은 MSDN 문서를 참조하십시오. 이를 극복하기위한 "executexmlReader"메소드 :

http://support.microsoft.com/kb/310378

이제는 임시 수정으로 작업하지만 엔티티 프레임 워크 기능 가져 오기를 사용하고 싶습니다. 그래서 ADO.NET 코드가 EF 코드와 섞이지 않았습니다.

은 EF에서 함수 가져 오기를 사용할 수있는 방법이 있습니까? XML을 반환하고 2033 문자 제한을 극복하고

감사합니다 BGS264

도움이 되었습니까?

해결책

나는 오늘 같은 문제로 들어갔다.

EF 함수 호출은 2033-long String 'chunks'에서 XML을 반환합니다 (예 : XML이 5000 char 길이가 길면 3 개의 결과를받는 경우 : 2 chars of 2033 chars and 1 934 chars 1)

XML의 전체 목록을 반환하려면이 덩어리를 쉽게 추가 할 수 있습니다.

다른 팁

나는 Fermin의 대답을 upvoted했다.치매 (그리고 다른 누구도)에 대한 반응, 여기에는 코드 조각이 있습니다.

다음에서 :

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();           
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top