如何永久删除数据库中的值

时间:2018-05-04 11:17:16

标签: asp.net-mvc aspnetboilerplate

我有一个方法,我从一个javascript调用,该方法假设永久删除记录但如果方法有DataContext db = new DataContext();它不会进入方法,它会给出错误Internal Server Error

public void PermanantlyDeleteComment(GetCommentInput input)
{
    DataContext db = new DataContext();
    //Follow by the code to delete the comment
}

如果我注释掉DataContext db = new DataContext();,那么断点会进入。

我认为问题出在datacontext上,但我知道知道在哪里

这是datacontext

public DataContext() : base("name=Default")
{
    this.Configuration.AutoDetectChangesEnabled = true;
    this.Configuration.LazyLoadingEnabled = true;
}

我正在使用DataContext,因为abp样板文件不想永久删除,只有软删除,如果你有办法我可以用样板文件硬删除,请告诉我。

2 个答案:

答案 0 :(得分:0)

在此主题中回答:https://forum.aspnetboilerplate.com/viewtopic.php?p=6180#p6193

  

您可以在DbContext中覆盖CancelDeletionForSoftDelete方法,并有条件地阻止取消。

所以,就像这样:

protected override void CancelDeletionForSoftDelete(EntityEntry entry)
{
    if (IsSoftDeleteFilterEnabled)
    {
        base.CancelDeletionForSoftDelete(entry);
    }
}

用法:

public void PermanantlyDeleteComment(GetCommentInput input)    
{
    using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete))
    {
        // The code to delete the comment
    }
}

答案 1 :(得分:0)

我发现DataContext是正确的,只是我在我的数据库库(有EntityFramework)和我的网络库

上有不同的DataContext.cs版本