我有一个自定义上下文提供程序来在服务器端进行验证。现在我想硬删除一个客户实体及其所有子实体(地址、电子邮件等)
- 顾客
- 地址
- 电子邮件
- ...
自定义上下文提供程序是检查和删除实体和引用的子实体的最佳方式吗?
编码:
class CustomContextProvider : EFContextProvider<CustomContext>
{
protected override bool BeforeSaveEntity(EntityInfo entityInfo)
{
switch (entityInfo.EntityState)
{
case EntityState.Deleted:
if (entityInfo.Entity.GetType() == typeof(Customer))
{
var customer = (Customer)entityInfo.Entity;
var customerDb = Context.Customers
.FirstOrDefault(c => c.Id == customer.Id);
// my delete logic
}
break;
}
return true;
}
}
在客户端
function deleteCustomer() {
customer().entityAspect.setDeleted();
return datacontext.saveChanges();
}
将被执行