运行 启动时默认
run by default on startup
我正在处理一个测试项目,我正在努力解决迁移问题。
我创建了一个数据库,名称为:AngularASPNETCore2WebApiAuth
然后在我的启动中,我向 Db 添加一个配置并指向 Migrations Assembly:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly("AngularASPNETCore2WebApiAuth")));
当我开始测试项目时出现错误:
System.Data.SqlClient.SqlException: 'Invalid object name 'AspNetUsers'.'
当时的印象是我提供了 MigrationsAssembly,因此当项目开始时迁移可以 运行。
我知道我可以使用 Update-Database 命令通过命令行更新我的数据库。
但是,如果默认情况下它们不是 运行,为什么我必须在启动时为迁移提供程序集。如何在启动时默认 运行 迁移?
设置 MigrationsAssembly 只是告诉上下文在哪里可以找到迁移程序集,您仍然需要明确 运行 它(很多时候您不希望每次启动应用程序时都 运行 迁移).您需要致电
myDbContext.Database.Migrate();
执行迁移。
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#apply-migrations-at-runtime
我正在处理一个测试项目,我正在努力解决迁移问题。
我创建了一个数据库,名称为:AngularASPNETCore2WebApiAuth
然后在我的启动中,我向 Db 添加一个配置并指向 Migrations Assembly:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly("AngularASPNETCore2WebApiAuth")));
当我开始测试项目时出现错误:
System.Data.SqlClient.SqlException: 'Invalid object name 'AspNetUsers'.'
当时的印象是我提供了 MigrationsAssembly,因此当项目开始时迁移可以 运行。
我知道我可以使用 Update-Database 命令通过命令行更新我的数据库。
但是,如果默认情况下它们不是 运行,为什么我必须在启动时为迁移提供程序集。如何在启动时默认 运行 迁移?
设置 MigrationsAssembly 只是告诉上下文在哪里可以找到迁移程序集,您仍然需要明确 运行 它(很多时候您不希望每次启动应用程序时都 运行 迁移).您需要致电
myDbContext.Database.Migrate();
执行迁移。
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#apply-migrations-at-runtime