나는 전에이 질문을했습니다. 그러나 나는 어떤 대답도 얻을 수 없었다. 나는 아주 명확하지 않았다. 좀 더 자세히 설명하겠습니다.Linq 저장 프로 시저에 의해 반환 된 문자열을 자름 SQL
긴 문자열을 반환하는 SP가 있습니다. 여기 여기 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));
}
이며, 여기 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;
}
}
}
}
와 나의 코드 결과가 긴 문자열이 아닌 경우
ISingleResult<spXResult> result = ctx.spX("1234");
string returnStr = result.First().XML_F52E2B61_18A1_11d1_B105_00805F49916B;
모든 것이 괜찮이지만, sp가 매우 긴 문자열을 리턴하자마자 결과를 잘라 버린다. 나는 아무런 단서도 없다. 누군가 도와 줄 수 있을까?
감사
당신이하시기 바랍니다 "매우 긴 문자열"의 길이에 대한보다 구체적인 될 수 있을까? 또한 어떤 데이터베이스 서버를 사용하고 있으며 문자열이 db에서 잘리지 않는지 확인 했습니까? –
메신저는 SQL Server 2005를 사용하며 데이터베이스 서버에서 잘리지 않습니다. 글쎄 .. 난 정확한 길이를 모르지만, 8000 문자 뒤에있을 수 있습니다. 내가 IMultipleResults를 시도해야한다고 생각하니? –
열 정의가 varchar (8000)이고 데이터가 8001 자 이상인 경우 데이터베이스에서 잘립니다. 여기에있는 코드는 XML 데이터를 처리하는 것으로 보입니다. Sql Server 2005에는 용도에 더 적합한 XML 데이터 형식이 있습니다. –