EF Core使用独立迁移程序集时如何生成SQL脚本?
解决EF Core独立迁移项目生成SQL脚本的问题
针对你遇到的dotnet ef migrations script无法识别迁移项目的问题,可通过以下两种方式解决:
方式一:完整指定启动项目、迁移项目与DbContext
使用--startup-project指定应用的启动项目(用于读取配置依赖),同时明确--project迁移项目和--context对应的DbContext类名:
dotnet ef migrations script --project MigrationProject.SqlServer.csproj --startup-project Application.csproj --context YourDbContextName --output path_for_sql_files
注意:将
YourDbContextName替换为你实际的DbContext类名称(比如AppDbContext)。
方式二:直接指定迁移项目并显式指定DbContext所在程序集
如果不需要启动项目的配置,可通过--context参数同时指定DbContext的完整类名和所在程序集:
dotnet ef migrations script --project MigrationProject.SqlServer.csproj --context "YourDbContextName, ProjectContainingDbContext" --output path_for_sql_files
这种方式会直接从指定的DbContext程序集读取上下文定义,同时从迁移项目读取迁移文件。
补充说明
EF Core 9.0.2中migrations script命令本身支持--project参数,问题根源在于命令缺少对上下文来源的明确指定,导致EF Core默认从当前目录或启动项目中查找DbContext,而非迁移项目。只要明确上下文的位置或指定启动项目,即可正常生成对应迁移项目的SQL脚本。
内容的提问来源于stack exchange,提问作者payetools-steve
相关产品推荐
相关产品推荐

