首页 > 解决方案 > 实体框架核心,数据库优先。关于意外丢失数据的初学者问题

问题描述

我还没有用 EF Core 写过一行代码,但我一直在阅读教程并试图首先掌握这个概念。我一直无法找到有关意外丢失数据的这些问题的任何答案:

一般来说,是否存在任何可能导致数据丢失的陷阱,或者如果您忘记做某事,或者是否所有硬删除操作都需要显式代码?

标签: ef-core-3.1savechangesdata-loss

解决方案


为了避免误解,我对问题进行了一些重新表述。

不在我的 DbContext 中的表是否已在 SaveChanges 中删除?

仅当您删除数据库或以其他方式删除表时,才会删除表。

如果一个 DbSet 为空,调用了 SaveChanges,会不会删除对应表的行?

是的。否则框架将无法工作。

是否有任何可能导致数据丢失或忘记做某事的陷阱

这取决于你的意思是错误忘记做某事。如果您忘记保存更改,那么您的更改将会丢失。如果您错误地修改、删除或删除表,那么您的数据当然会丢失。

您应该始终定期备份数据库,测试备份是否可以恢复,并在数据库副本上测试新内容。


推荐阅读