gpt4 book ai didi

javascript - BreezeJS - 删除在自定义上下文提供程序中引用的实体

转载 作者:行者123 更新时间:2023-11-29 22:12:49 24 4
gpt4 key购买 nike

我有一个 custom context provider在服务器端验证。现在我想硬删除一个客户实体及其所有子实体(地址、电子邮件等)

  1. 客户
    • 地址
    • 电子邮件
    • ...

自定义上下文提供程序是否是检查和删除实体和引用的子实体的最佳方式?

代码:

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();
}

将被执行

最佳答案

这会起作用,只是您仍会在客户端上将子项标记为未删除。一种方法是在来自 SaveChanges 调用的 promise 回调中“分离”客户端上的所有子实体。在这种情况下分离它们效果很好,因为您真正想要做的就是在客户端忘记它们,因为您已经在服务器上删除了它们。这有意义吗?

关于javascript - BreezeJS - 删除在自定义上下文提供程序中引用的实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17136865/

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