メインメニューを開く

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

< Mono

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});

目次

関連項目編集

参考文献編集