我有一个方法,我从一个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样板文件不想永久删除,只有软删除,如果你有办法我可以用样板文件硬删除,请告诉我。
答案 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
版本