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?