当前位置: 首页 > 面试题库 >

WPF-如何以编程方式备份​​/还原LocalDB-ClickOnce

段坚
2023-03-14
问题内容

我有一个应用程序,它使用EF和LocalDB作为数据库,由ClickOnce发布。这是我第一次使用LocalDB,我不知道如何为应用程序添加功能以编程方式备份​​/还原数据库。

ClickOnce安装的“我的应用路径”:

C:\Users\Mahdi Rashidi\AppData\Local\Apps\2.0\NOL11TLW.9XG\CZM702AQ.LPP\basu..tion_939730333fb6fcc8_0001.0002_fd707bbb3c97f8d3

并且这是数据库文件的安装位置:

C:\Users\Mahdi Rashidi\AppData\Local\Apps\2.0\NOL11TLW.9XG\CZM702AQ.LPP\basu...exe_939730333fb6fcc8_0001.0002_none_8c555c3966727e7f
  1. 我应该如何备份/还原数据库?
  2. 如何确保数据库不受ClickOnce进一步更新的影响?

非常感谢 :)


问题答案:

这就是我对localDb进行备份和还原时所做的事情

public void BackupDatabase(string filePath)
    {
        using (TVend2014Entities dbEntities = new TVend2014Entities(BaseData.ConnectionString))
        {
            string backupQuery = @"BACKUP DATABASE ""{0}"" TO DISK = N'{1}'";
            backupQuery = string.Format(backupQuery, "full databsase file path like C:\tempDb.mdf", filePath);
            dbEntities.Database.SqlQuery<object>(backupQuery).ToList().FirstOrDefault();
        }
    }

    public void RestoreDatabase(string filePath)
    {
        using (TVend2014Entities dbEntities = new TVend2014Entities(BaseData.ConnectionString))
        {
            string restoreQuery = @"USE [Master]; 
                                                ALTER DATABASE ""{0}"" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
                                                RESTORE DATABASE ""{0}"" FROM DISK='{1}' WITH REPLACE;
                                                ALTER DATABASE ""{0}"" SET MULTI_USER;";
            restoreQuery = string.Format(restoreQuery, "full db file path", filePath);
            var list = dbEntities.Database.SqlQuery<object>(restoreQuery).ToList();
            var resut = list.FirstOrDefault();
        }
    }

希望这就是你想要的。



 类似资料:
  • 我研究了一下,我能找到的唯一答案是: > 如何禁止下拉通知栏。 如何使用以下方法取消通知: 我尝试了Android的Lollipop和牛轧糖,但通知栏都没有恢复。如果有人能告诉我这是不是可能的以及怎么做。多谢了。 生成通知的代码:

  • 79.概述 备份和还原是许多数据库提供的标准操作。有效的备份和还原策略有助于确保用户可以在发生意外故障时恢复数据。 HBase 备份和还原功能有助于确保使用 HBase 作为规范数据存储库的企业可以从灾难性故障中恢复。另一个重要功能是能够将数据库还原到特定时间点,通常称为快照。 HBase 备份和还原功能可以在 HBase 集群中的表上创建完整备份和增量备份。完整备份是应用增量备份以构建迭代快照的

  • 问题内容: 每次部署之前,我都有一个要用以下命令更新的映像。 此命令将覆盖先前的图像。我如何备份此映像(或在不提交到网络存储库的情况下,在本地将其更改为其他标签?如果有任何问题,我可以还原备份。 问题答案: 如何备份这张图片 只需使用docker save 命令。 您稍后将可以使用docker load 命令将其还原。 还是将其更改为本地的其他标签,而无需提交网络存储库? 使用docker tag

  • 有没有办法以编程方式创建firestore触发器? 我希望使用火还原触发器来保持复合对象在初始化位置的一致性- 但是,我不需要查看集合中的每个“主要”文档,因为只有有限数量的“主要”对象具有“次要”关系——我的假设是,只查看特定文档而不是整个集合将提高总体性能并降低成本,因为触发器只会为相关的文档触发文档,与集合中的文档总数相比,要侦听的文档数量要少得多 虽然我可以将这些具有该关系的文档放在一个单

  • 一个安全和可靠的服务器是与定期运行备份有密切的关系,因为由攻击、硬体故障、人为错误、电力中断等引致的错误有可能随时发生。 Navicat 为用户提供一个内置备份和还原工具用于备份或还原 MySQL、PostgreSQL、SQLite 和 MariaDB 数据库对象。对于 Oracle、SQL Server 和 MongoDB,用户可以使用以下的功能。 Oracle 数据泵 SQL Server 备

  • 一个安全和可靠的服务器是与定期运行备份有密切的关系,因为由攻击、硬体故障、人为错误、电力中断等引致的错误有可能随时发生。 Navicat 为用户提供一个内置备份和还原工具用于备份或还原 MySQL、PostgreSQL、SQLite 和 MariaDB 数据库对象。对于 Oracle、SQL Server 和 MongoDB,用户可以使用以下的功能。 Oracle 数据泵 SQL Server 备