PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Array des zusammengesetzten Typs als Eingabe einer gespeicherten Prozedur, die von C# Npgsql übergeben wird

Ihre CLR-Typen zuordnen

Es ist weiterhin möglich und in einigen Fällen erforderlich, eine explizite Zuordnung für Ihre CLR-Typen einzurichten. Dies bietet die folgenden Vorteile:

Sie wissen, dass Sie die DataTypeName-Eigenschaft Ihres Parameters nicht mehr angeben müssen. Npgsql leitet den Datentyp von Ihrem bereitgestellten CLR-Typ ab.

Nicht typisierte Lesemethoden wie NpgsqlDataReader.GetValue() geben Ihren CLR-Typ anstelle eines dynamischen Objekts zurück (siehe unten). Im Allgemeinen sollten Sie den typisierten NpgsqlDataReader.GetFieldValue() verwenden, daher sollte dies nicht wichtig sein.

Sie können die Namenszuordnung für jeden Typ individuell anpassen (siehe unten). Um eine globale Zuordnung für alle Ihre Verbindungen einzurichten, fügen Sie diesen Code vor Ihrem ersten Öffnen ein:

 NpgsqlConnection.GlobalTypeMapper.MapEnum<SomeEnum>("some_enum");
 NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite");

Wenn Sie keine Zuordnung für alle Ihre Verbindungen einrichten möchten, können Sie nur eine Verbindung einrichten:

var conn = new NpgsqlConnection(...);
conn.TypeMapper.MapEnum<SomeEnum>("some_enum");
conn.TypeMapper.MapComposite<SomeType>("some_composite");

http://www.npgsql.org/doc/types/enums_and_composites.html