我正在开发一个带有Breezejs处理数据的Angular购物车。
在保存交易之前,我需要使用网关进行授权。
但是Breeze在保存之前似乎没有让我做任何事情,因为这些都是实体。
我的问题是:
如何反序列化实体以为网关创建对象?
像这样:
public SaveResult CheckoutSave(JObject saveBundle)
{
var billingAddress = saveBundle[0]; //this doesn't work,
//how to separate the data from the bundle?
var paymentMethod = saveBundle[1];
var products = saveBundle[2];
var user = UserManager.FindById(User.Identity.GetUserId());
// here I'd call the gateway...
// and then, I can call the changes...
return _repository.SaveChanges(saveBundle);
}
答案 0 :(得分:1)
事实上很简单......
我使用了代表: _contextProvider.BeforeSaveEntitiesDelegate 并通过调用网关来扩展函数......如果我引发异常,EF会处理事务。