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