2

モデルに 64 ビット (長い) プロパティがあります。メタデータは正しく、breezejs はそれが 64 ビット プロパティであることを認識しています。

それでも、データをクエリするとき、ODATA URL の値の後に「L」が含まれていないため、int32 に対してクエリを実行しようとしていると見なされるため、サーバーで例外が発生します。

そのため、フィルターの最後に「L」を手動で追加する必要がありました。

これはbreezejsによって自動的に行われるべきではありませんか?

編集

Breezejs のコードには fmtInt 関数があります。dataType は Int64 ですが、そこに移動します。「L」を追加するための fmtLong 関数が必要だと思います。

次のコードを変更しました。

  DataType.Int64 = DataType.addSymbol({
    defaultValue: 0, isNumeric: true, isInteger: true, quoteJsonOData: true,
    parse: coerceToInt,
    fmtOData:  fmtInt,
    getNext: getNextNumber
});

  DataType.Int64 = DataType.addSymbol({
    defaultValue: 0, isNumeric: true, isInteger: true, quoteJsonOData: true,
    parse: coerceToInt,
    fmtOData:  makeFloatFmt("L"),
    getNext: getNextNumber
});

そして、それは機能します。それは正しい方法ですか?もしそうなら、バグ修正はありますか?

4

3 に答える 3

1

これは現在利用可能な Breeze 1.4.8 で修正されています。

于 2014-01-07T22:33:35.537 に答える
0

Jay、これは新しいバージョンでは修正されていないようです。そうですか?

于 2013-10-18T07:54:24.400 に答える