如何在单独的模式上迁移模型

时间:2014-03-10 16:44:18

标签: entity-framework

我有以下类,我想在不同的模式中使用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()
    {
    }

如何进行迁移以将该模型导入数据库?

1 个答案:

答案 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/

我强烈建议不要使用自动迁移并遵循“基于代码的”迁移路径。