注1: 由于时间久远,之前的旧代码要求新增功能,需要升级,而之前的数据库不能放弃,想直接迁移到新电脑上直接使用
注2:因为长时间未使用EF codefirst相关操作,为了方便问题追溯,以此来记录此次碰到的各种问题
此次迁移的指令操作全部都在VS Studio 2022中的程序包管理器控制台中操作
Migration的命令如下:
1 | Enable-Migrations -Force |
1 | Add-Migration |
1 | Update-Databse -Verbose |
¶1 启动Migrations
如果是初始启动,且当前没有存在旧有的数据库,直接使用 Enable-Migrations
进行 启用migration用来初始化数据库;
如果存在旧有的数据库,则需要使用 Enable-Migrations -Force
来定位数据库的位置;
¶2 迁移Migrations
使用 Add-Migration
+ 标签来标记数据库的记录;
¶3 更新到数据库
使用 Update-Databse
进行数据库更新;
操作过程中遇到问题:
¶SQL Server问题汇总:
- error: 26 - 定位指定的服务器/实例时出错 (Microsoft SQL Server,错误: -1)
分析原因:
Target database is: ‘*****
’ (DataSource: .\\
SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Configuration).
经断点调试发现:以下位置代码中的连接字符串
1 | public HiContext() : base("Hi.Scanner") |
与下面的字符串不符
1 | <connectionStrings> |
改正后,出现以下问题:
Target database is: ‘Hi.Scanner’ (DataSource: (localdb)\\
ProjectV13, Provider: System.Data.SqlClient, Origin: Configuration).
System.Data.SqlClient.SqlException (0x80131904):
在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。(provider: SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。指定的 LocalDB 实例名称无效。)