sql >> Database >  >> RDS >> PostgreSQL

Array van samengesteld type als opgeslagen procedure-invoer doorgegeven door C# Npgsql

Uw CLR-typen in kaart brengen

Het is nog steeds mogelijk, en in sommige gevallen noodzakelijk, om een ​​expliciete mapping op te zetten voor uw CLR-types. Dit biedt de volgende voordelen:

U weet dat het langer nodig is om de eigenschap DataTypeName voor uw parameter op te geven. Npgsql zal het gegevenstype afleiden uit het door u opgegeven CLR-type.

Niet-getypeerde leesmethoden zoals NpgsqlDataReader.GetValue() zullen uw CLR-type retourneren in plaats van een dynamisch object (zie hieronder). Over het algemeen zou u de getypte NpgsqlDataReader.GetFieldValue() moeten gebruiken, dus dit zou niet belangrijk moeten zijn.

U kunt de naamtoewijzing per type aanpassen (zie hieronder). Om een ​​globale toewijzing voor al uw verbindingen in te stellen, plaatst u deze code vóór uw eerste keer openen:

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

Als u geen toewijzing voor al uw verbindingen wilt instellen, kunt u slechts één verbinding instellen:

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




  1. INT-vergelijking zonder WHERE-instructie

  2. Oracle na update trigger maken openbare databaselink

  3. hoe een tabelnaam als parameter doorgeven aan de opgeslagen procedure?

  4. Wijzig kolomgegevenstype van Tekst naar Integer in PostgreSQL