Jak określić właściwość rozmiaru dla parametrów wyjściowych procedury składowanej w warstwie dostępu do danych C #

Zrobiłem warstwę dostępu do danych wymodelowaną bezwstydnie z implementacji ActiveRecord Castle Project. Aby uzyskać akceptację, musi obsługiwać obszerną bibliotekę procedur przechowywanych w mojej organizacji, które zostały napisane w celu wykorzystania każdej możliwej do wyobrażenia struktury wejścia / wyjścia, w tym wartości zwracanych i parametrów wyjściowych każdego możliwego typu danych.

Moim problemem jest opracowanie kodu, który dodaje parametr wyjściowy do kolekcji parametrów obiektu Command używanego do wykonywania procedury składowanej. W tej chwili używam tylko dużej wartości domyślnej, mając nadzieję, że wystarczy złapać wszystkie przypadki, ale to jest tandetne.

Jak mogę znać długość parametru wyjściowego z wyprzedzeniem?

Oto moja klasa DAL, używająca atrybutów do oznaczenia parametru wyjściowego:

 [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; }

    }

Czy muszę użyć SMO lub innej biblioteki, aby uzyskać długość z bazy danych?

questionAnswers(3)

yourAnswerToTheQuestion