Visual Studio 2019 を使用して .NET Core 3.1 でアプリを開発していますが、Windows 10 Pro を使用しているローカル マシンですべて正常に動作します。しかし、Azure にデプロイすると、次の問題が発生します。
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 9 ("@p8"): The supplied value is not a valid instance of data type geography. Check the source data for invalid values. An example of an invalid value is data of numeric type with scale greater than precision
このエラーは、Post をデータベースに追加するときに発生します。Post には type のプロパティがあり、次のNetTopologySuite.Geometries.Point
ように設定されています
location = new Point(longitude, latitude) { SRID = 4326 };
。経度と緯度は double です。
location を null に設定すると、エラーは表示されません。ドットの前に 2 桁、ドットの後に 6 桁など、精度を下げようとしましたが、それでもエラーが発生します。
Entity Framework Core を使用しています。としてdb列を生成しましLocation (geography, null)
た。
編集: lat と lon の文字列を double のように変換しています: Convert.ToDouble(longitude.Replace(".", ","))
. 削除.Replace(".", ",")
して Azure で動作するようになりましたが、ローカル環境でも同じエラーが表示されます。両方のデータベースに ID 4326 の空間があります。