PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Tablica typu złożonego jako dane wejściowe procedury składowanej przekazane przez C# Npgsql

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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LIKE zapytanie dotyczące elementów płaskiej tablicy jsonb

  2. Jak policzyć grupę według zapytania w NodeJS Sequelize

  3. Nie aktualizuj kolumny, jeśli wartość aktualizacji ma wartość null

  4. Wartość tablicy PostgreSQL integer łączy się z liczbą całkowitą w innej tabeli za pomocą ciągu opisowego

  5. Scal ciągłe wiersze z Postgresql