En esta oportunidad me hice un StoredProcedure que me devuelve múltiples resultados y no me funcionaba la llamada a este desde Linq. Me daba el siguiente error al agregar el SP al dbml:
Error: Unknown Return Type, The return types for the following stored procedures could not be detected
Si tienen un problema similar, esto se debe a que el SP devuelve múltiples resultados y se resuelve modificando manualmente el designer del dbml. La forma predeterminada es la siguiente:
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.TuSP")]
public object spDevuelveInfo()
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())));
return ((int)(result.ReturnValue));
}
Y es de esta forma en que se debe dejar:
[global::System.Data.Linq.Mapping.FunctionAttribute(Name="dbo.TuSP")]
[ResultType(typeof(Info))]
public IMultipleResults spDevuelveInfo()
{
IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod()));
return (IMultipleResults)(result.ReturnValue);
}
"Info" en este caso es una clase serializable que deben tener:
[Serializable]
public class Info
{
public string Dato1 { get; set; }
public string Dato2 { get; set; }
public string Dato3 { get; set; }
}
De nuevo salu2.
No hay comentarios:
Publicar un comentario