私は、あるインスタンスに POINT を格納し、別のインスタンスに POLYGON を格納するためのモデルの一部として空間データ型 DbGeography を使用して、新しい Entity-Framework 5 を使用しています。
POLYGON の値を設定すると、すべてエラーなしで保存されますが、これはマップ上で時計回りの順序で Polygon を描画した場合にのみ当てはまります。POLGON を反時計回りに描画すると、データが無効な地理タイプであることを示す SQL レベルのエラーが表示されます。
この問題について独自の調査を行った後、地理データ型がポリゴン リングの向きに関して非常に厳密であることが原因のようです。最も一般的な解決策は、Polygon をジオメトリとして作成し、それを geography タイプに変換することです。
SQLに送信される前にデータに適用できるC#のソリューションを探しています。基本的に、座標の配列のリングの向きを自動修正するもの。
エラーをキャッチしてから、配列を逆にして文字列を再構築しようとしました。これは場合によっては機能しますが、第一に信頼性が低く、第二にエラーをキャッチするとパフォーマンスが大幅に低下します。
ありがとうクリス