Ermitteln der Größeneigenschaft für Ausgabeparameter von gespeicherten Prozeduren in der C # -Datenzugriffsebene
Ich habe eine Datenzugriffsebene erstellt, die schamlos aus der ActiveRecord-Implementierung von Castle Project modelliert wurde. Damit es Akzeptanz findet, muss es die umfangreiche Bibliothek der in meiner Organisation verwendeten gespeicherten Prozeduren unterstützen, die für die Verwendung jeder denkbaren Eingabe- / Ausgabestruktur geschrieben wurden, einschließlich Rückgabewerten und Ausgabeparametern für jeden denkbaren Datentyp.
Mein Problem besteht darin, den Code zu entwickeln, der den Ausgabeparameter zur Parametersammlung des Befehlsobjekts hinzufügt, das zum Ausführen der gespeicherten Prozedur verwendet wird. Im Moment verwende ich nur einen großen Standardwert, in der Hoffnung, dass es ausreicht, alle Fälle zu erfassen, aber das fühlt sich schlampig an.
Wie kann ich die Länge des Ausgabeparameters im Voraus kennen?
Hier ist meine DAL-Klasse, die Attribute zur Bezeichnung des Ausgabeparameters verwendet:
[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; }
}
Muss ich SMO oder eine andere Bibliothek verwenden, um die Länge aus der Datenbank zu ermitteln?