Entity-Framework, das eine gespeicherte FOR XML-Prozedur aufruft, schneidet 2033 Zeichen ab

8

Ich habe eine gespeicherte Prozedur, die am Ende eine FOR XML-Anweisung verwendet und mir etwas XML zurückgibt.

Ich benutze .NET 4 und das Entity Framework und wenn ich einen Funktionsimport dieser gespeicherten Prozedur mache und versuche, sie über das Entity Framework aufzurufen, schneidet sie die Rückgabe bei 2033 Zeichen ab.

Ich habe das Entity Framework für einen traditionellen ADO.NET-Ansatz getauscht, um die gespeicherte Prozedur aufzurufen, die das gleiche Problem hatte - bei 2033 Zeichen gekürzt -, als ich auf den folgenden MSDN-Artikel stieß, der dies als By-Design erklärt und verwendet die "ExecuteXMLReader" -Methode, um es zu überwinden:

Ссылка

Das funktioniert jetzt als vorübergehende Lösung, aber ich möchte gerne Funktionsimporte von Entity Framework verwenden, so dass ich keinen ADO.NET-Code mit EF-Code vermischt habe.

Gibt es eine Möglichkeit, wie ich Funktionsimporte in EF verwenden, das XML zurückgeben und das 2033 Zeichenlimit überwinden kann?

Grüße
  bgs264

    
bgs264 12.07.2010, 12:03
quelle

2 Antworten

7

Ich bin heute auf dasselbe Problem gestoßen.

Der EF-Funktionsaufruf gibt den XML-Code in 2033 langen String-Chunks zurück (wenn Ihr XML beispielsweise 5000 Zeichen lang war, würden Sie 3 Ergebnisse erhalten: 2 von 2033 Zeichen und 1 von 934 Zeichen)

Sie können diese Chunks einfach anfügen, um eine vollständige Liste der XML-Dateien zurückzugeben.

    
Fermin 20.07.2010, 10:59
quelle
2

Ich habe Fermins Antwort hochgestuft. Antwort auf Dementic (und alle anderen), hier ist ein Codefragment.

Von diesem:

%Vor%

Dazu:

%Vor%     
Justin 16.12.2015 14:12
quelle