Question

J'ai une procédure stockée qui utilise une instruction XML à la fin de celle-ci et me renvoie quelques XML.

J'utilise .NET 4 et la structure d'entité et lorsque je fais une importation de fonction de cette procédure stockée et essayez de l'appeler dans le cadre d'entité, il tronque le retour à 2033 caractères.

J'ai échangé le cadre d'entité pour une approche traditionnelle ADO.NET pour appeler la procédure stockée qui avait le même problème - tronqué à 2033 caractères - qui est quand je suis tombé sur l'article MSDN suivant expliquant ceci est en conception et à utiliser La méthode "ExecuTexMlreader" pour la surmonter:

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

Donc, cela fonctionne maintenant comme une solution temporaire, mais j'aimerais utiliser les importations de fonction Framework d'entité afin que je n'ai pas de code Ado.net mélangé avec le code EF.

Y a-t-il une manière que je puisse utiliser les importations de fonctions dans EF, renvoyer le XML et surmonter la limite de caractères 2033?

Cordialement
BGS264

Était-ce utile?

La solution

J'ai couru dans le même problème aujourd'hui.

L'appel de la fonction EF renvoie le XML dans la chaîne de 2033-longs 'Chunks' (par exemple, si votre XML était de 5000 caractères, vous recevriez 3 résultats: 2 sur 2033 caractères et 1 sur 934 caractères)

Vous pouvez facilement appendez ces morceaux pour renvoyer une liste complète du XML.

Autres conseils

J'ai évité la réponse de Fermin.Réponse à démence (et à quelqu'un d'autre), voici un fragment de code.

à partir de ceci:

using (var db = new MyEntities())
{
    IEnumerable<string> results = db.GetSomeXML(ProductCode);
    return results.FirstOrDefault();           
}

à ceci:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top