即時通訊工作與breezejs和我的應用程序的服務器端代碼是.net。breezejs問題與保存包
在我的意見(客戶端),我想添加和實體,然後我想保存它。讓我們假設一個實體是這樣的:
{
"Id": 1,
"Name": "someName",
"CreatedDate": "1900-01-01T05:00:00Z",
"UpdatedDate": "1900-01-01T05:00:00Z",
"CreatedBy": null,
"UpdatedBy": null,
"RowVersion": 0,
etc ...
}
}
我想設置的CreatedDate
UpdatedDate
CreatedBy
和UpdatedBy
的價值觀,我能做到這一點當然是使用JavaScript的,但我不希望客戶把這些樣的護理東西的。
我的微風控制器在那裏住這個函數是這樣的:
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle)
{
return _contextProvider.SaveChanges(saveBundle);
}
如u可以看到saveBundle是JObject,當我調試,我看到saveBundle這樣的:
{
"entities": [
{
"Id": 1,
"Name": "someName",
"CreatedDate": "1900-01-01T05:00:00Z",
"UpdatedDate": "1900-01-01T05:00:00Z",
"CreatedBy": null,
"UpdatedBy": null,
"RowVersion": 0,
etc ...
}
}
}
],
"saveOptions": {}
}
如何在保存提交之前,我可以在saveBundle中更改CreatedDate
UpdatedDate
CreatedBy
和UpdatedBy
的值嗎?
這是一個JObject對象的數組作爲proprety,我可以操縱JavaScript的JSON,我怎麼能用.Net?
非常感謝。
你應該把它標記爲答案吧? –
我在同一個問題上跑來跑去,到處都看到答案是'BeforeSaveEntities'。我懷疑這會引入設計級別的問題,因爲我們被迫在DataContextProvider中執行所有業務級別的操作,理想情況下應該在存儲庫中完成這些操作。如果我們有10個以上的實體在保存之前修改,該怎麼辦?我們將使用swich-case來檢查實體類型並進行修改嗎?我們可以遵循的最佳做法是什麼? – devC
請注意,您在修改實體時還需要更新OriginalValuesMap,例如entityInfo.OriginalValuesMap [「UpdatedDate」] = null; 更多信息在這裏 - > http://breeze.github.io/doc-net/contextprovider.html#OriginalValuesMap – JSancho