我正在将一些代码从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()
{
}
}
我的种子方法是空的,但我希望它能为我创建一些空表。显然我错过了什么,但是什么?
答案 0 :(得分:1)
如果您的DbContext不再在启动项目中,则需要使用-StartUpProjectName
开关,以便EF可以在那里查看配置文件以获取连接字符串。
add-migration MagicWombat -StartUpProjectName YourProject
如果您在PM控制台中选择了您的类库作为默认值,否则:
add-migration MagicWombat -ProjectName YouClassLibrary -StartUpProjectName YourProject