保存包的 Breezejs 问题
breezejs issues with the save bundle
im 使用 breezejs,我的应用程序的服务器端代码是 .net。
在我的视图(客户端)中,我想添加和实体,然后我想保存它。让我们假设一个实体是这样的:
{
"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);
}
如您所见,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,我可以用 JavaScript 操作 Json,我如何使用 .Net ???
多谢。
感谢Jay Traband的帖子,我终于找到了一种在保存实体之前对其进行更改的方法。
我像这样重载BeforeSaveEntity
:
protected override bool BeforeSaveEntity(EntityInfo entityInfo) {
// Return false if don´t want to save the entity
var entityType = entityInfo.Entity.GetType();
if (entityInfo.Entity.GetType() == typeof(MyEntityTypeModel))
{
if (entityInfo.EntityState == EntityState.Added)
// It can be 'Modified' or 'Deleted'
{
var MyModel = entityInfo.Entity as MyEntityTypeModel;
MyModel.CreatedDate = DateTime.Now;
MyModel.UpdatedDate = DateTime.Now;
string username = Membership.GetUser().UserName;
MyModel.CreatedBy = username;
MyModel.UpdatedBy = username;
}
}
return true;
}
非常感谢,我希望有一天这会帮助某人。
您可以使用 ContextProvider 的虚拟 BeforeSaveEntity 和 BeforeSaveEntities 方法来拦截 Breeze 的服务器端保存过程。 此处和此处的文档包含有关此主题的详细信息。
例如,您可以使用如下所示的代码重写 BeforeSaveEntities。
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap) {
foreach (var type in saveMap.Keys) {
var list = saveMap[type];
foreach (var entityInfo in list) {
var entity = entityInfo.Entity;
// .. do something interesting here
}
}
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 由于iframe导致的问题
- breezejs:非标量导航属性是只读的(多对多问题)
- 保存包的 Breezejs 问题