我正在处理一个测试项目,并且试图将自己的头放在迁移上。
我创建了一个名称为AngularASPNETCore2WebApiAuth
的数据库
然后在我的启动中,将配置添加到Db并指向Migrations Assembly:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"),
b => b.MigrationsAssembly("AngularASPNETCore2WebApiAuth")));
当我开始测试项目时出现错误:
System.Data.SqlClient.SqlException:'无效的对象名称'AspNetUsers'。
当时我很印象深刻,因为我已经提供了MigrationsAssembly,因此可以在项目启动时运行迁移。
我知道我可以使用Update-Database命令通过命令行更新数据库。
但是,如果默认情况下未由应用程序运行迁移,为什么还要在启动时为迁移提供程序集。默认情况下,如何在启动时运行迁移?
答案 0 :(得分:1)
设置MigrationsAssembly只是告诉上下文在哪里找到迁移程序集,您仍然需要显式运行它(很多时候您不想每次启动应用程序时都运行迁移)。您需要致电
myDbContext.Database.Migrate();
执行迁移。
https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/#apply-migrations-at-runtime