[英]Entity Framework multiple projects with code first migrations
我有一个名为“Core”的类库项目,它定义了具有公共类属性的CoreContext:
public class CoreContext : DbContext
{
public DbSet<User> Users { get; set; }
public DbSet<Role> Roles { get; set; }
public DbSet<UserContactInfo> UserContactInfos { get; set; }
... more common properties ...
}
然后我有多个项目引用“核心”项目并定义继承CoreContext的新上下文:
PROJECT1:
public class Project1Context : CoreContext
{
public DbSet<Foo> Foos { get; set; } //object defined in Project1
}
项目2:
public class Project2Context : CoreContext
{
public DbSet<Bar> Bars { get; set; } //object defined in Project2
}
当我在Project1Context中更改某些内容时,我在Project1中创建了一个新的迁移,这是正常的,但是如果我在Core项目中更改某些内容,让我们说将属性Company
添加到UserContactInfo
我将不得不转到Project1和Project2并添加新的迁移,我将最终得到与Project1和Project2中的Core项目相关的迁移。
我的问题是:有没有办法可以在Core项目中保留CoreContext的迁移,并将Project1Context和Project2Context迁移到相应的项目,并自动执行与项目相关的所有迁移,因此当我启动Project1时,它将运行自己的迁移, CoreContext迁移?
作为澄清,我有Project1和Project2的单独数据库,最近更新了EF到版本6。
您所说的是不可能的。想象一下,如果您使用模型创建基本的CRUD视图,然后更改模型。 你的问题很相似..
也许你可以编写自己的继承自MigrateDatabaseToLatestVersion
的子类?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.