给定一个驻留在程序集中的DBContext(foo.dll)。我无法直接访问由第三方开发的foo.dll代码。您可以假设第三方看不到我想要运行迁移的数据库。
我是否可以通过引用foo.dll来执行代码首次迁移,我在我的应用程序中使用它?
第三方可以实现的任何解决方案,除了公开dbcontext类或自己进行迁移之外,也没关系
答案 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);
或触发迁移的一些变体。