我有以下类,我想在不同的模式中使用EF6执行数据库迁移。
namespace AlphaFrontEndSiteASP.Models
{
public class UserContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Connection> Connections { get; set; }
}
public class SignalRUser
{
[Key]
public string UserName { get; set; }
public ICollection<Connection> Connections { get; set; }
}
public class Connection
{
public string ConnectionID { get; set; }
public string UserAgent { get; set; }
public bool Connected { get; set; }
}
}
我运行Add-Migration SignalRModel,但SignalRModel只是Migration的名称,然后它要我使用dB列:
public partial class SignalRModel : DbMigration
{
public override void Up()
{
}
如何进行迁移以将该模型导入数据库?
答案 0 :(得分:2)
基于我们的快速Twitter聊天,我认为您正在寻找的是EF6的新功能,可以处理每个数据库的多个上下文。关键是您需要使用HasDefaultSchema标识上下文的模式名称。而不是在StackOverflow中重写整个事情,我可以指向现有内容。以下是解释其工作原理的规范:https://entityframework.codeplex.com/wikipage?title=Multi-tenant%20Migrations。 这是我写的关于使用该功能的博客文章..指定上下文,指向同一个数据库,分别启用每个模型的迁移,并针对这两个模型添加/执行mingrations。 http://thedatafarm.com/data-access/digging-in-to-multi-tenant-migrations-with-ef6-alpha/
我强烈建议不要使用自动迁移并遵循“基于代码的”迁移路径。