Съпоставяне на вашите CLR типове
Все още е възможно, а в някои случаи и необходимо, да настроите изрично съпоставяне за вашите CLR типове. Това осигурява следните предимства:
Знаете, че вече трябва да посочите свойството DataTypeName на вашия параметър. Npgsql ще изведе типа данни от предоставения от вас CLR тип.
Нетипизирани методи за четене като NpgsqlDataReader.GetValue() ще върнат вашия CLR тип, вместо динамичен обект (вижте по-долу). По принцип трябва да използвате въведения NpgsqlDataReader.GetFieldValue(), така че това не трябва да е важно.
Можете да персонализирате съпоставянето на имена за всеки тип (вижте по-долу). За да настроите глобално съпоставяне за всичките си връзки, поставете този код преди първото отваряне:
NpgsqlConnection.GlobalTypeMapper.MapEnum<SomeEnum>("some_enum");
NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite");
Ако не искате да настроите съпоставяне за всичките си връзки, можете да го настроите само за една връзка:
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