You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Asp.Net Core 6项目移至其他电脑后本地数据库数据丢失怎么恢复?

解决Asp.Net Core 6本地数据库迁移后数据丢失问题
  • 确认原始数据库文件的完整性
    打包项目时很可能没把存有数据的原始数据库文件(比如.mdf或.db文件)包含进去。回到开发用的电脑,找到项目根目录下的数据库文件,检查里面是否有数据。如果有,直接将这个文件复制到新电脑项目的对应目录,覆盖新电脑上的空文件——别只复制输出目录里的副本,原始项目目录下的文件才是存数据的核心文件。

  • 修正连接字符串路径
    打开appsettings.json,检查ConnectionStrings里的路径是否指向正确的文件。如果用相对路径,确保指向项目根目录的数据库文件,而非输出目录的副本。示例:

    "ConnectionStrings": {
      "DefaultConnection": "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\YourDatabase.mdf;Integrated Security=True"
    }
    

    可以在Program.cs里加一行代码验证|DataDirectory|的实际指向,确保路径对应带数据的文件:

    Console.WriteLine(AppDomain.CurrentDomain.GetData("DataDirectory"));
    
  • 停止不必要的迁移操作
    add-migration和update-database是用来更新数据库结构的,不会帮你恢复数据。如果新电脑上的数据库是全新的,迁移只会创建空表结构。直接使用带数据的数据库文件即可,仅当新旧电脑的数据库结构有差异时,再执行update-database同步结构。

  • 强制覆盖输出目录的空文件
    即使设置了Copy to Output Directory为Copy if newer,如果输出目录里已经存在旧的空数据库文件,构建时可能不会自动覆盖。手动删除bin/Debug/net6.0这类输出目录里的数据库文件,再重新构建项目,确保带数据的文件被复制过去。

  • 手动附加LocalDB数据库
    打开SQL Server Management Studio,连接到(LocalDB)\MSSQLLocalDB,右键点击「数据库」→「附加」,选择带数据的.mdf文件完成附加。之后修改连接字符串,直接指向附加后的数据库名称,示例:

    "ConnectionStrings": {
      "DefaultConnection": "Data Source=(LocalDB)\\MSSQLLocalDB;Initial Catalog=YourDatabaseName;Integrated Security=True"
    }
    

内容的提问来源于stack exchange,提问作者Samm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:22:05