1

SQL Server 2008 で地理テーブルをマップしていません。nhibernate を使用して c# でポリゴン インスタンスを使用してクエリを実行したいと考えています。
最初に、SQL Server Spatial を直接使用しようとしましたが、次の問題が発生しました: Using SQL Server 2008 Geography types with nHibernate's CreateSQLQuery

私の2番目の試みはこれでした:

session.CreateSQLQuery("select [shape] from [table] where (:codeShape).STIntersects([shape]) = 1").SetParameter("codeShape", codeShape, NHibernateUtil.Custom(typeof(MsSql2008GeographyType)));

ただし、これも例外を発生させます。

Could not execute query [select [shape] from [table] where (?).STIntersects([shape]) = 1")] Name:codeShape - Value:POLYGON((30 40, ...))

内部例外は次のとおりです。

The specified input does not represent a valid geography instance.

これは、codeShape.IsValid が true を返すにもかかわらずです。

このクエリを SQL サーバーで直接実行すると、期待どおりの結果が得られます。

アイデアや解決策はありますか?

ありがとう。

4

1 に答える 1

0

問題が解決しました。ポリゴンのポイントを逆にする必要がありました。

于 2012-11-04T07:08:41.473 に答える