我正在使用Entity Framework 6开发一个c#windows桌面项目。解决方案中有3个不同的项目。让我们说.EDMX
这是一个启动项目并包含exe文件; ProjectA
这是框架并包含ProjectB
;和DbContext
包括所有模型。
现在我真的不知道如何为这些不同的项目启用迁移,因为每个项目将成为一个单独的程序集。
我熟悉启用迁移和添加迁移命令,但是当上下文位于另一个程序集中并且模型位于另一个程序集中时,我不知道如何使用它。
请帮忙。
提前致谢。
答案 0 :(得分:1)
您可以设置可以从启动项目调用的初始化类。
public static class InitializeAndSeed
{
public static void InitializeContext()
{
Database.SetInitializer(new MigrateDatabaseToLatestVersion<YourDbContext
,YourDbContextMigrations>());
using (var db = new YourDbContext())
{
db.Database.Initialize(false);
}
}
}
public class YourDbContextMigrations : DbMigrationsConfiguration<YourDbContext>
{
public YourDbContextMigrations ()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
//Your seeding and your migrations
}
然后,从您的启动项目中,您可以调用InitializeContext()
方法从应用程序启动类或您需要的任何位置初始化上下文。您只想确保每个应用程序启动时只初始化一次。