Mono/NpgsqlとDapperで幾何データ型にプリペアドする
2016年5月20日 (金) 04:33時点におけるimported>Administratorによる版 (ページの作成:「NpgsqlとDapperの組み合わせでPostgreSQLにアクセスする際には幾何データ型<ref>https://www.postgresql.jp/document/9.2/html/functions-geome...」)
NpgsqlとDapperの組み合わせで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});