CLRタイプのマッピング
CLRタイプの明示的なマッピングを設定することは可能であり、場合によっては必要です。そうすることで、次の利点が得られます。
パラメータにDataTypeNameプロパティを指定する必要がなくなったことを知っています。 Npgsqlは、指定されたCLRタイプからデータタイプを推測します。
NpgsqlDataReader.GetValue()などの型指定されていない読み取りメソッドは、動的オブジェクトではなく、CLR型を返します(以下を参照)。一般に、型指定されたNpgsqlDataReader.GetFieldValue()を使用する必要があるため、これは重要ではありません。
タイプごとに名前マッピングをカスタマイズできます(以下を参照)。すべての接続のグローバルマッピングを設定するには、最初に開く前に次のコードを配置します。
NpgsqlConnection.GlobalTypeMapper.MapEnum<SomeEnum>("some_enum");
NpgsqlConnection.GlobalTypeMapper.MapComposite<SomeType>("some_composite");
すべての接続にマッピングを設定したくない場合は、1つの接続のみを設定できます:
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