【问题标题】:EF6 Code First Migration from Class Library Results in Blank Up/Down从类库进行 EF6 代码优先迁移导致空白向上/向下
【发布时间】:2014-02-10 16:07:08
【问题描述】:

我正在将一些代码从 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()
    {
    }
}

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

【问题讨论】:

  • 确保在运行add-migration之前将包管理器控制台中的默认项目下拉菜单更改为类库。

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


【解决方案1】:

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

add-migration MagicWombat -StartUpProjectName YourProject

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

add-migration MagicWombat -ProjectName YouClassLibrary -StartUpProjectName YourProject

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    相关资源
    最近更新 更多