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 サーバーで直接実行すると、期待どおりの結果が得られます。
アイデアや解決策はありますか?
ありがとう。