从类库中EF6代码优先迁移导致空白向上/向下

时间:2014-02-10 16:07:08

标签: c# asp.net-mvc entity-framework ef-code-first

我正在将一些代码从EF5重写为EF6。作为流程的一部分,我试图将数据库上下文逻辑拆分为类库。这在部分主项目之前有效,但现在在运行add-migration时会产生空白的上/下方法。

public class SLDBContext : DbContext
{
    public SLDBContext()
        : base("name=SLApi")
    {
        System.Data.Entity.Database.SetInitializer(new CreateDatabaseIfNotExists<SLDBContext>());
    }

    public DbSet<Language> Languages { get; set; }
    public DbSet<Template> Templates { get; set; }
    public DbSet<TemplateFolder> TemplateFolders { get; set; }
    public DbSet<Element> Elements { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        //modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }
}

在包管理器控制台中选择我的类库运行add-migration MagicWombat可以得到:

public partial class MagicWombat : DbMigration
{
    public override void Up()
    {
    }

    public override void Down()
    {
    }
}

我的种子方法是空的,但我希望它能为我创建一些空表。显然我错过了什么,但是什么?

1 个答案:

答案 0 :(得分:1)

如果您的DbContext不再在启动项目中,则需要使用-StartUpProjectName开关,以便EF可以在那里查看配置文件以获取连接字符串。

add-migration MagicWombat -StartUpProjectName YourProject

如果您在PM控制台中选择了您的类库作为默认值,否则:

add-migration MagicWombat -ProjectName YouClassLibrary -StartUpProjectName YourProject