Como determinar a propriedade de tamanho para parâmetros de saída do procedimento armazenado na camada de acesso a dados C #
Eu fiz uma camada de acesso a dados modelada descaradamente fora da implementação do ActiveRecord do Castle Project. Para que ele ganhe aceitação, ele deve suportar a extensa biblioteca de procedimentos armazenados em uso na minha organização, que foram escritos para usar todas as estruturas de entrada / saída imagináveis, incluindo valores de retorno e parâmetros de saída de todos os tipos de dados concebíveis.
Meu problema está em desenvolver o código que adiciona o parâmetro de saída à coleção de parâmetros do objeto Command usado para executar o procedimento armazenado. No momento, estou usando apenas um grande valor padrão, esperando que seja o suficiente para capturar todos os casos, mas isso parece ruim.
Como posso saber antecipadamente o comprimento do parâmetro de saída?
Aqui está minha classe DAL, usando atributos para denotar o parâmetro de saída:
[StoredProcedure("usp_PostARTransaction", OperationType.Insert)]
public class ARTranPost : DataObjectBase<ARTranPost>
{
[StoredProcedureParameter("sARTranID",OperationType.Insert,ParameterDirection.Output)]
public string ARTranID {get;set;}
[StoredProcedureParameter("sDueDate", OperationType.Insert, ParameterDirection.Input)]
public string DueDate { get; set; }
[StoredProcedureParameter("sPostDate", OperationType.Insert, ParameterDirection.Input)]
public string PostDate { get; set; }
}
Preciso usar o SMO ou alguma outra biblioteca para obter o comprimento do banco de dados?