DBContext被第三个paty dll锁定时的EF迁移

时间:2015-05-05 14:49:00

标签: entity-framework-6

给定一个驻留在程序集中的DBContext(foo.dll)。我无法直接访问由第三方开发的foo.dll代码。您可以假设第三方看不到我想要运行迁移的数据库。

我是否可以通过引用foo.dll来执行代码首次迁移,我在我的应用程序中使用它?

更新

第三方可以实现的任何解决方案,除了公开dbcontext类或自己进行迁移之外,也没关系

2 个答案:

答案 0 :(得分:0)

您需要从引用程序集的项目运行迁移。

所以,我建议你在你的解决方案中创建一个单独的项目来引用foo.dll。

确保您的数据库连接字符串包含在您的web.config或app.config文件中(您必须向第三方询问您应该使用的连接字符串名称,或者如果可用,请在文档中查找)。 / p>

接下来,打开包管理器并运行以下命令(使用适用的程序集的fqn):

enable-migrations -ContextAssemblyName foo; add-migration "initial"; update-database;

答案 1 :(得分:0)

也许foo.dll可以添加

的功能
Database.SetInitializer(new MigrateDatabaseToLatestVersion<...,...>());
Database.Initialize(true);

或触发迁移的一些变体。