日付の操作に問題があります。
日付フィールドを持つオブジェクトがあります:
public DateTime FechaInicio {get; セットする;}
この定義により、データベースに次のフィールドが生成されます。
FechaInicio日時はnullではありません
Webサービスにリクエストを送信すると、次の形式で日付が(JSONで)取得されます。
"FechaInicio": "1982-12-02T00:00:00"
また、エンティティでFechaInicio()を呼び出すと、javascriptのDateオブジェクトが返されます。
新しいエンティティを作成すると、次の値が得られます。
createPalanca var = function () {
MetadataStore var = manager.metadataStore;
metadataStore.getEntityType palancaType = var ("Toggle");
palancaType.createEntity newPalanca = var ();
manager.addEntity (newPalanca);
//Here: newPalanca.FechaInicio () has the value in this format: 1355313343214
//Expected Date object here
newPalanca return;
};
結局のところ、私の本当の質問は、日付型フィールドに新しい値を割り当てるためにどの形式を使用する必要があるかということです。
編集:
いくつかのテストを行った後、プロパティにDateオブジェクトを割り当てると、次の行に到達するまですべてが正常に見えることに気付きました。
saveBundleStringified var = JSON.stringify(saveBundle);
saveBundleのコンテンツは次のとおりです。
FechaInicio: Thu Dec 20 2012 00:00:00 GMT+0100 (Hora estándar romance)
およびsaveBundleStringified:
"FechaInicio": "2012-12-19T23:00:00.000Z" <- I guess this is utc format
最終的にデータベースに保存されるのは、2012-12-19 23:00:00.0000000です。
SaveChangesの呼び出しの結果が返されると、関数updateEntityでキャッシュ内のエンティティとマージされます。このチェックはfalseを返すif(!core.isDate(val))です。結果として、間違った日付で新しいDateオブジェクトが作成されます。
function fastDateParse(y, m, d, h, i, s, ms){ //2012 12 19 23 00 00 ""
return new Date(y, m - 1, d, h || 0, i || 0, s || 0, ms || 0);
}
私が間違っていたら訂正してください、でもそれが問題だと思います。