如何配置EF Code-First迁移的默认与启动项目,简化Update-Database命令
简化Code-First迁移的
update-database命令执行流程 我来给你梳理两个关键配置,让你以后只需要在Package Manager Console(PMC)里敲update-database就能完成数据库更新,不用再手动选默认项目或者加参数:
1. 固定PMC的默认项目为迁移文件所在项目
每次打开PMC都要选默认项目确实麻烦,你可以直接在Visual Studio的全局设置里固定它:
- 点击顶部菜单栏的工具 → 选项(Tools → Options)
- 在弹出的窗口里展开NuGet包管理器,选择Package Manager Console
- 在右侧的「默认项目」下拉框中,选中你的迁移文件所在的项目,点击「确定」保存设置
之后每次打开PMC,默认项目都会自动选中这个项目,不用再手动切换。
2. 指定默认的启动项目(无需-startupprojectname参数)
要让update-database自动读取CoreConsole项目的连接配置,有两种简单的方式:
方法一:设置解决方案的默认启动项目
这是最直接的方式:
- 在解决方案资源管理器里右键点击你的解决方案,选择设置启动项目
- 在弹出的窗口里选择「单一启动项目」,然后选中CoreConsole项目,点击「确定」
这样PMC执行update-database时,会自动使用这个启动项目的配置文件来读取连接字符串,不需要额外加-startupprojectname参数。
方法二:在迁移配置类中指定连接信息(适合不想改解决方案启动项目的场景)
如果你的解决方案需要保持其他项目为默认启动项,可以修改迁移项目里的Configuration.cs文件:
打开该文件后,在构造函数里直接指定目标数据库的连接信息,示例如下:
public Configuration() { AutomaticMigrationsEnabled = false; // 替换成你的实际连接字符串和数据库提供者 TargetDatabase = new DbConnectionInfo("Server=your-server;Database=your-db;Trusted_Connection=True;", "System.Data.SqlClient"); }
这样即使解决方案启动项目不是CoreConsole,update-database也会使用这里指定的连接配置来更新数据库。
完成以上两个配置后,你只需要打开PMC,直接输入update-database回车就能完成数据库更新啦!
内容的提问来源于stack exchange,提问作者Argnist
相关产品推荐
相关产品推荐

