多个Context单个数据库如何进行迁移
第一个Context
public class FirstDbContext : DbContext
{
public FirstDbContext(DbContextOptions<FirstDbContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public ICollection<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
第二个Context
public class SecondDbContext : DbContext
{
public SecondDbContext(DbContextOptions<SecondDbContext> options)
: base(options)
{ }
public DbSet<Student> Students { get; set; }
}
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
configservice中注入
public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
var connection@"Server=数据库地址;Database=Db;UserId=账号;Password=密码;";
services.AddDbContext<FirstDbContext> (options => options.UseSqlServer(connection));
services.AddDbContext<SecondDbContext>(options => options.UseSqlServer(connection));
}
迁移命令
FirstDbContext
- Add
Add-Migration InitialCreate -Context FirstDbContext -OutputDir Migrations\FirstDbContextMigrations
- update
Update-Database -Context FirstDbContext
SecondDbContext
- Add
Add-Migration InitialCreate -Context SecondDbContext -OutputDir Migrations\SecondDbContextMigrations
- update
Update-Database -Context SecondDbContext
需要注意的情况
请避免两个 DBContext 内的实体有互相主外键连接的情况