首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有独立于数据库的实体框架核心的文件备份/还原

具有独立于数据库的实体框架核心的文件备份/还原
EN

Stack Overflow用户
提问于 2020-01-29 06:57:02
回答 1查看 381关注 0票数 0

在我当前的应用程序中,所有数据都使用实体框架存储在数据库中。

现在,我希望在基础数据库的不可知论的应用程序中实现“导出/备份到文件”的功能和相应的“从文件导入/还原”功能,而不是使用数据库的备份/还原方法。

还原应该将数据恢复到备份之前的状态,因此在备份之后的更改应该被丢弃。

它分为以下几个部分进行备份:

从database

  • serialize对象加载所有实体(从根实体到子实体)到字符串

  • ,将此字符串写入文件

并为恢复:

file

  • deserialize

  • 将文件内容读取到objects
  • remove中database
  • write中的所有现有实体所有实体到数据库

备份部分主要是通过使用本文的代码(https://stackoverflow.com/a/49597502/226278)和使用JSON.net来序列化结果数据来完成的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = db.Set<Blog>().Include(db.GetIncludePaths(typeof(Blog))).ToList(); // both Include() and GetIncludePaths() from https://stackoverflow.com/a/49597502/226278
var stringToFile = JsonConvert.SerializeObject(data, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
// write string to file

还完成了大部分恢复工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// read string from file
var data = JsonConvert.DeserializeObject<List<Blog>>(stringFromFile, new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
_context.AddRange(data);
_context.SaveChanges();

我正在挣扎的是在恢复所有实体之前对数据库进行清理。什么是最好的,最EF的核心方式来做这件事?

而且,这应该独立于底层数据库,因此任何解决方案(包括ExecuteSqlCommand() )都可能不是我想要的。

EN

回答 1

Stack Overflow用户

发布于 2020-01-29 07:19:35

您可以重命名旧数据库并以一个新模式开始将数据插入到其中吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59969801

复制
相关文章
数据库备份/还原
开发的日常工作难免会遇到需要备份数据的场景,例如,DB特性变更,为了能备份便于回滚,亦或是,需要从不同服务器导数据。本文记录mysql、mongo数据库的常用导入/导出操作,方便查阅。
liliane
2022/08/14
4.7K0
mysql数据库备份和还原的命令_Mysql数据库备份和还原常用的命令
Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令。
全栈程序员站长
2022/08/19
7.6K0
sqlserver 备份还原数据库
using Chloe.SqlServer; using System; using System.Collections.Generic; using System.IO; namespace bak { class Program { static void Main(string[] args) { Console.WriteLine("还原/备份(restore/backup):"); var rep =
FreeTimeWorker
2021/08/18
3.7K0
浅谈 SQLServer 数据库的备份与还原
在生活中,数据库管理员最担心的就是数据库瘫痪,从而造成数据丢失,任何数据的丢失都会造成非常严重的后果,所以我们为了更有效的保护和恢复数据,需要进行备份数据。 一般来说,造成数据的丢失主要包括几类: 1、程序错误:程序异常终止或逻辑错误 2、人为错误:管理员误操作 3、计算机失败:系统崩溃,硬件和软件引起的错误 4、磁盘失败:磁盘读写磁头损坏、磁盘物理块损坏 5、灾难和偷窃:自然灾害、人为偷窃都会造成 SQL server的备份有如下三种: 1、完整备份:完整备份包括对整个数据库、部分事务日志、数据库结构和文件结构的备份。它代表的是备份完成时刻的数据库。是所有备份类型的基础。
小手冰凉
2019/09/10
1.5K0
浅谈 SQLServer 数据库的备份与还原
Mysql备份还原数据库
mysqldump -u username -p -hhost --databases dbname2 dbname2 > Backup.sql
Sindsun
2019/12/11
10.4K0
浅谈MySQL数据库的备份与还原
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
2.2K0
浅谈MySQL数据库的备份与还原
《浅谈MySQL数据库的备份与还原》一文介绍了MySQL数据库备份与还原的基本概念和操作方法,包括mysqldump、mysqlbackup等工具的使用。还原过程也介绍了两种方法,分别是使用mysqldump命令备份的数据库和直接使用mysql命令备份的数据库。
企鹅号小编
2018/01/05
2.6K0
数据库备份和还原详解
问题:会导致备份的数据时间点可能不一致,恢复后的数据时间点不一致,还有可能造成mysql拒绝恢复
dogfei
2020/07/31
1.9K0
Oracle数据库备份与还原
Oracle中的备份与恢复区分为:逻辑备份和物理备份。其中物理备份区分为两类:冷备份和热备份
全栈程序员站长
2022/09/14
2.8K0
Mysql数据库备份和还原
mysqldump-hhostname-uusername-ppassworddatabasename>backupfile.sql
DevinGeng
2019/04/09
4.2K0
Mysql数据库备份和还原
MySQL数据库备份与还原
MySQL数据库备份与还原 今天就分享代码,大家回去看看研究下! import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; im
Java帮帮
2018/03/19
5.2K0
ghost备份和还原_cgi备份还原
用Ghost手动备份系统,主要是针对组装电脑而言,至于品牌机,它都会有自己的系统恢复工具,所以不在此列。 现在很多人对在使用电脑中出现系统崩溃的故障,都会采取重装系统的办法。 其实重装系统是一件比较麻烦的事。 一切都得从头开始,尤其是安装驱动、应用程序等等,全部再装好需要花费较长的时间。 所以在这里特别建议大家,在安装完操作系统之后,对系统进行手动备份。 这样当系统出现故障不能正常启动时,就可以从光盘或U盘启动,然后将系统还原,省时省力。 现在的操作系统镜像文件都提供有Ghost程序,可以将镜像文件刻录到光盘,也可以用老毛桃制作一个U盘启动盘。
全栈程序员站长
2022/10/04
3.9K0
ghost备份和还原_cgi备份还原
备份和还原MySQL数据库的简便方法
我们现在将讨论如何备份数据库和还原MySQL。数据库的维护非常重要,因为数据库包含我们拥有的重要数据,因此,应备份数据库以避免数据丢失。
星哥玩云
2022/08/18
2.9K0
备份和还原MySQL数据库的简便方法
MySQL数据库备份与还原
使用示例:登录ip为127.0.0.1,端口为3306,用户名为root,密码为root的mysql
小诸葛
2022/03/31
3.8K0
MySQL数据库备份与还原
#第一种通过命令:mysqldump -uroot -p密码 需要备份的数据库名>备份后的sql脚本名;
全栈程序员站长
2022/08/12
3.9K0
MySQL数据库备份与还原
Mysql数据库备份与还原
在服务器进行数据传输、数据存储和数据交换,就有可能产生数据故障。比如发生意外停机或存储介质损坏。这时,如果没有采取数据备份和数据恢复手段与措施,就会导致数据的丢失,造成的损失是无法弥补与估量的。
Devops海洋的渔夫
2022/01/17
1.8K0
Mysql数据库备份与还原
SqlServer数据库备份与还原
  最近需要给程序新增功能,用于将旧格式的数据转换为新格式,同时删除旧格式的数据(新旧格式的数据库表有部分重叠,同一份数据无法同时存在新旧格式的数据),由于测试环境中的测试数据不多,功能调试几次之后就没有旧格式的数据做测试了,因此想到在功能调试前先将测试数据库备份,然后功能调试之后再将测试数据库还原,这样就可以重复的进行功能调试。   数据库备份过程比较顺利,但是还原过程中出现错误,无论是还原数据库还是还原数据库文件都报错:   还原数据库时报下面错误:
全栈程序员站长
2022/08/28
2.5K0
SqlServer数据库备份与还原
关于数据库的各种备份与还原姿势详解
上一小节提到了数据备份是指将数据库中数据存储的相关文件进行拷贝,而这些文件有很多,所以让我们来简单认识下MySQL中与数据相关的文件。
端碗吹水
2020/09/23
1.6K0
关于数据库的各种备份与还原姿势详解
MySQL数据库篇之数据库的备份和还原
数据库的备份和还原 数据库的备份 第0步:先查看我们需要备份什么数据库,记下其名称 第一步: 打开cmd命令行窗口 第二步:输入备份数据库的命令语句 数据库的还原 第一种的还原方式 第二种还原方式 数据库的备份 第0步:先查看我们需要备份什么数据库,记下其名称 第一步: 打开cmd命令行窗口 第二步:输入备份数据库的命令语句 mysqldump -u root -p 需要备份的数据库名称 >备份的路径 如果权限不够,需要打开管理员的命令行 打开管理员的命令行 成功标志:
大忽悠爱学习
2021/11/15
1.6K0
T-Sql备份还原数据库
代码如下: -- 备份数据库 BACKUP DATABASE 数据库名称 TO DISK = '物理存储位置' WITH FORMAT,CHECKSUM -- 还原数据库 alter database 数据库名称 set offline with rollback immediate -- 设置数据库脱机 RESTORE FILELISTONLY From disk ='待还原文件地址' --查询待还原数据库 mdf、ldf存储的物理位置(低下还原用) RESTORE DATABASE
磊哥
2018/05/08
1.3K0

相似问题

具有实体框架核心的WithOptional

13

具有实体框架核心的NoSQL

30

具有现有数据库的实体框架核心配置

221

具有实体框架核心5.0的UWP

12

实体框架核心添加具有相关实体的新实体

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文