Á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