Mono/NpgsqlとDapperで幾何データ型にプリペアドする

提供: MonoBook
移動: 案内検索

NpgsqlDapperの組み合わせでPostgreSQLにアクセスする際には幾何データ型[1]の省略表記が使えないようだ。 普段からpsqlやPgAdminなどでは省略表記しか使っていなかったため、これに気が付かず謎のエラーに悩まされ続けた。

正常[編集]

このような表記は問題ない。

con.Query<object>(
    "SELECT box( point(@X1,@Y1), point(@X2,@Y2) )", 
    new { X1 = 1, Y1 = 2, X2 = 3, Y2 = 4});

異常[編集]

一方で以下のような省略表記は実行時にエラーとなった。point型を明示せず省略するとプリペアド時の型を特定できずにエラーとなっているようだ。

con.Query<object>(
    "SELECT box((@X1,@Y1),(@X2,@Y2) )", 
    new { X1 = 1, Y1 = 2, X2 = 3, Y2 = 4});

関連項目[編集]

参考文献[編集]