Entity framework 通过实体框架删除数据库是永久性的吗?

Entity framework 通过实体框架删除数据库是永久性的吗?,entity-framework,Entity Framework,我有一个使用EntityFramework和Azure SQL数据库的web应用程序。我想知道删除数据库中的一行是否会永久删除信息,或者只是将其标记为已删除,但如果需要,仍然可以访问它 db.MyTable.Remove(objectInstance); db.SaveChanges(); 这是可以配置的,还是我需要自己实现此功能,添加deleted属性 我希望这样做的原因是能够执行分析,包括可能已被删除的对象。实际上,EF与此无关。是否永久删除记录实际上取决于RDBMS。EF是RDBMS的O

我有一个使用EntityFramework和Azure SQL数据库的web应用程序。我想知道删除数据库中的一行是否会永久删除信息,或者只是将其标记为已删除,但如果需要,仍然可以访问它

db.MyTable.Remove(objectInstance);
db.SaveChanges();
这是可以配置的,还是我需要自己实现此功能,添加
deleted
属性


我希望这样做的原因是能够执行分析,包括可能已被删除的对象。实际上,EF与此无关。是否永久删除记录实际上取决于RDBMS。EF是RDBMS的ORM

海事组织的选择:

  • 您可以使用额外的列管理标记为已删除的记录
  • 您可以将删除的记录移动到另一个表或文件中,以方便您运行分析。这样,您的查询将必须接触更少的记录,并且速度更快
  • 您可以浏览日志文件并再次执行插入以获取已删除的记录

  • 希望我的建议能帮你找到正确的方向。

    Hmm你总是有sql日志文件,用于回滚和恢复,数据也保存在那里。你为什么问这个问题?我在问题上加了我的理由。根据你所说的,在我看来,最好执行我的实现,因为从日志文件中检索数据似乎更加复杂。是的,就数据库而言,数据会被永久删除。如果您想实现将其标记为已删除的方式,请在数据库表中添加一个名为
    已删除的新列,例如,bool值为0或1或-1I,我从未尝试从中获取数据,我认为您也不应该这样做,它不是为此而构建的。如果我是你,我会亲自实施……选择2似乎是最好的。谢谢顺便说一句,我提到了EF,它包含了我的实现的上下文,以防有某种关联。