检查这些SO文章后:实体框架中的级联删除 https://stackoverflow.com/questions/27293576/cascade-delete-in-entity-framework, ef6-1-软删除与级联删除 https://stackoverflow.com/questions/32728029/ef6-1-soft-delete-with-cascade-delete, 级联软删除 https://stackoverflow.com/questions/506432/cascading-soft-delete, 父子关系中级联软删除的方法 https://stackoverflow.com/questions/13307978/method-for-cascading-soft-deletes-in-parent-child-relationships and 级联软删除的原因 https://stackoverflow.com/questions/19522911/reasons-for-cascading-soft-deletes并且没有找到解决方案...
我有 SoftDelete 为我的实体模型工作。我已经覆盖了SaveChanges()
在我的上下文中:
public override int SaveChanges()
{
ChangeTracker.DetectChanges();
foreach (DbEntityEntry<ISoftDeletable> entity in ChangeTracker.Entries<ISoftDeletable>())
{
if (entity.State == EntityState.Deleted)
{
entity.State = EntityState.Modified;
entity.Entity.IsDeleted = true;
}
}
return base.SaveChanges();
}
我已经为我的子实体设置了 CascadeOnDelete。因为我覆盖了已删除的EntityState
它不会级联。有谁知道如何仅将导航属性放入foreach
环形?或者有更好的方法来处理 SoftDeletes?
先感谢您,
读完这篇文章后实体框架 6 代码优先级联删除 https://stackoverflow.com/questions/21314113/entity-framework-6-code-first-cascade-delete...
我意识到,我正在抓取并删除我的实体,如下所示:
var entity = context.Parent.FirstOrDefault();
context.Parent.Remove(entity);
当我需要像这样抓取整个图表时:
var entity = context.Parent.Include("Children").FirstOrDefault();
context.Parent.Remove(entity);
感谢您的意见@Maarten
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)