J'ai déjà posé cette question auparavant. mais je n'étais pas en mesure d'obtenir une réponse. Peut-être que je n'étais pas très clair. permettez-moi de donner plus de détails.Chaîne tronquée Linq to sql renvoyée par la procédure stockée
J'ai un SP qui renvoie une chaîne longue. voici le code de fichier dbml
[Function(Name="dbo.spX")]
public ISingleResult<spXResult> spX([Parameter(DbType="VarChar(8000)")] string str)
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), str);
return ((ISingleResult<spXResult>)(result.ReturnValue));
}
et voici la classe spXResult
public partial class spXResult
{
private string _XML_F52E2B61_18A1_11d1_B105_00805F49916B;
public spXResult()
{ }
[Column(Name="[XML_F52E2B61-18A1-11d1-B105-00805F49916B]",
Storage="_XML_F52E2B61_18A1_11d1_B105_00805F49916B",
DbType="NText", UpdateCheck=UpdateCheck.Never)]
public string XML_F52E2B61_18A1_11d1_B105_00805F49916B
{
get
{
return this._XML_F52E2B61_18A1_11d1_B105_00805F49916B;
}
set
{
if ((this._XML_F52E2B61_18A1_11d1_B105_00805F49916B != value))
{
this._XML_F52E2B61_18A1_11d1_B105_00805F49916B = value;
}
}
}
}
et voici mon code
ISingleResult<spXResult> result = ctx.spX("1234");
string returnStr = result.First().XML_F52E2B61_18A1_11d1_B105_00805F49916B;
tout va bien, lorsque le résultat est pas une chaîne longue, mais dès que le sp renvoie une très longue chaîne, il tronque le résultat. Je n'ai aucune idée pourquoi .. quelqu'un peut-il m'aider s'il vous plaît.
grâce
Pouvez-vous être plus précis sur la longueur d'une « très longue chaîne » s'il vous plaît? De plus, quel serveur de base de données utilisez-vous et avez-vous vérifié que la chaîne n'est pas tronquée dans la base de données? –
im en utilisant SQL Server 2005, et non son ne pas tronqué sur le serveur de base de données. bien .. je ne sais pas la longueur exacte, mais peut être après 8000 caractères. Pensez-vous que je devrais essayer IMultipleResults? –
Si votre définition de colonne est varchar (8000) et que les données contiennent 8001 caractères ou plus, elles sont tronquées dans la base de données. Le code que vous avez ici semble également traiter des données XML. Sql Server 2005 a un type de données XML pour cela qui peut mieux convenir à votre objectif. –