Infinity の値を保持できないため、SQL float が C# Double と同じであるというのは明らかに正しくありません。
私は、確率とリターン期間を扱う非常に単純な数学的モデルを持っています。
いつ
Double Probability = 0d
、
次に、定義により:
Double ReturnPeriod = Double.PositiveInfinity
これらのプロパティが Insert コマンドの float パラメーターにマップされている場合、プロシージャを実行しようとすると、DataService レベルでエラーが発生します。
着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。パラメータ 134 ("@RETURNPERIOD"): 指定された値は、データ型 float の有効なインスタンスではありません。ソース データに無効な値がないか確認してください。無効な値の例は、位取りが精度より大きい数値型のデータです。
どうすればこれを解決できますか? ReturnPeriods の文字列表現を格納するようにスキーマを変更したり、+Inf、-Inf、NaN のいずれであるかを格納するために単一の float ごとに 2 番目の列を追加したりするなど、ばかげたことに頼りたくありません。
このような 2006 年の古い投稿は、あまり役に立ちません。