gpt4 book ai didi

c# - 保存包的 breezejs 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:25:14 24 4
gpt4 key购买 nike

我正在使用 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 CreatedByUpdatedBy 的值,我可以使用 javascript当然,但我不希望客户处理这些事情。

我的 breeze controller 这个函数是这样的:

[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 CreatedByUpdatedBy 的值 promise ???

这是一个以对象数组为属性的 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;
}

非常感谢,我希望有一天这会对某人有所帮助。

关于c# - 保存包的 breezejs 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com