PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Tableau de type composite en tant qu'entrée de procédure stockée transmise par C # Npgsql

Mappage de vos types CLR

Il est toujours possible, et dans certains cas nécessaire, de configurer un mappage explicite pour vos types CLR. Cela offre les avantages suivants :

Vous savez plus besoin de spécifier la propriété DataTypeName sur votre paramètre. Npgsql déduira le type de données à partir de votre type CLR fourni.

Les méthodes de lecture non typées telles que NpgsqlDataReader.GetValue() renverront votre type CLR, au lieu d'un objet dynamique (voir ci-dessous). En général, vous devriez utiliser le type NpgsqlDataReader.GetFieldValue(), donc cela ne devrait pas être important.

Vous pouvez personnaliser le mappage du nom par type (voir ci-dessous). Pour configurer un mappage global pour toutes vos connexions, mettez ce code avant votre première ouverture :

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

Si vous ne souhaitez pas configurer de mappage pour toutes vos connexions, vous pouvez le configurer pour une seule connexion :

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