Mapowanie typów CLR
Nadal jest możliwe, aw niektórych przypadkach konieczne, ustawienie jawnego mapowania dla typów CLR. Takie postępowanie zapewnia następujące korzyści:
Wiesz już, że musisz określić właściwość DataTypeName w swoim parametrze. Npgsql wywnioskuje typ danych z podanego typu CLR.
Niewpisane metody odczytu, takie jak NpgsqlDataReader.GetValue(), zwrócą typ CLR zamiast obiektu dynamicznego (patrz poniżej). Ogólnie powinieneś używać typu NpgsqlDataReader.GetFieldValue(), więc nie powinno to mieć znaczenia.
Możesz dostosować mapowanie nazw dla poszczególnych typów (patrz poniżej). Aby skonfigurować globalne mapowanie dla wszystkich połączeń, umieść ten kod przed pierwszym otwarciem:
NpgsqlConnection.GlobalTypeMapper.MapEnum<SomeEnum>("some_enum");
NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite");
Jeśli nie chcesz konfigurować mapowania dla wszystkich połączeń, możesz skonfigurować tylko jedno połączenie:
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