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

提供: MonoBook
< Mono
2016年5月20日 (金) 04:33時点におけるimported>Administratorによる版 (ページの作成:「NpgsqlDapperの組み合わせでPostgreSQLにアクセスする際には幾何データ型<ref>https://www.postgresql.jp/document/9.2/html/functions-geome...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

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

関連項目

参考文献