PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Mảng kiểu kết hợp làm đầu vào thủ tục được lưu trữ được truyền bởi C # Npgsql

Ánh xạ các loại CLR của bạn

Vẫn có thể và trong một số trường hợp cần thiết, thiết lập ánh xạ rõ ràng cho các loại CLR của bạn. Làm như vậy mang lại những lợi ích sau:

Bạn cần phải chỉ định thuộc tính DataTypeName trên tham số của mình. Npgsql sẽ suy ra kiểu dữ liệu từ kiểu CLR bạn đã cung cấp.

Các phương thức đọc không định kiểu như NpgsqlDataReader.GetValue () sẽ trả về kiểu CLR của bạn, thay vì một đối tượng động (xem bên dưới). Nói chung, bạn nên sử dụng NpgsqlDataReader.GetFieldValue () đã nhập, vì vậy điều này không quan trọng.

Bạn có thể tùy chỉnh ánh xạ tên trên cơ sở từng loại (xem bên dưới). Để thiết lập ánh xạ toàn cục cho tất cả các kết nối của bạn, hãy đặt mã này trước lần mở đầu tiên của bạn:

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

Nếu bạn không muốn thiết lập ánh xạ cho tất cả các kết nối của mình, bạn chỉ có thể thiết lập một kết nối:

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. mục đích của đối chiếu trong Postgres

  2. Về tác động của việc viết toàn trang

  3. Postgresql k-láng giềng gần nhất (KNN) trên khối lập phương đa chiều

  4. Hiểu biết của tôi về kích thước Unicorn, Sidekiq và DB Pool có đúng không?

  5. Tạo một chuỗi trên một bảng hiện có