.NET 4.5 Beta 再頒布可能パッケージをインストールした新しいサーバーがあります。空間機能を使用しようとすると、NotImplemented 例外が発生します。このコード...
var x = DbGeography.PointFromText(string.Format("POINT({0} {1})", -45, 45), 4326);
この例外をスローします...
System.NotImplementedException: The method or operation is not implemented.
at System.Data.Spatial.DefaultSpatialServices.GeographyPointFromText(String geographyText, Int32 spatialReferenceSystemId)
完全な VS.NET 11 Beta をインストールすると、コードは正常に動作します。理由はありますか?何が欠けている?
回答の更新
パヴェルに感謝します。SQL CLR 型をインストールする必要があります。2012 バージョンは、次のリンクから入手できます。
Microsoft® SQL Server® 2012 の Microsoft® System CLR タイプ http://www.microsoft.com/download/en/details.aspx?id=29065
意見
.NET フレームワークが SQL Server に依存している理由がよくわかりません。これらのクラスについて特別なことは何もありません。これは、コードが最初に SQL チームによって作成され、.NET チームがそれを再利用したいと考えた歴史的なものである可能性が高いことを認識しています。これがプロバイダーベースの実装であることも明確ではありません。より良い例外メッセージがあれば、1 日の作業を節約できたでしょう。