当 CodeFirst 无法完全控制数据库时,它看起来好像停止做作业(我想)。
该方案是托管在 Arvixe.com(或我想任何其他共享托管服务器)上的网站,我必须在其中仅从他们的控制面板创建数据库(而不是使用 Sql Server Management Studio,只是说...)。
创建一个空数据库后,我在网站中注册一个连接,并使用它从 poco 对象生成数据库,例如:
添加迁移 m1 -targetdatabase myconnection
这正确生成了我的第一个迁移,我可以毫无问题地应用
更新数据库 -targetdatabase myconnection
第一个不太重要的问题是,由于数据库已经存在,它不会发出 Seed 命令,所以我必须手动插入我的第一条记录,但这不是一个大问题。
然后我更改了我的 poco 对象,我需要更新数据库,但是当我发出 ANOTHER 时
add-migration m2 -targetdatabase myconnection
它给出了错误:
System.Data.Entity.Migrations.MigrationsPendingException:无法生成显式迁移,因为以下显式迁移正在挂起:[201111081426466_m1]。在尝试生成新的显式迁移之前应用挂起的显式迁移。
这真的很奇怪,因为如果我查看数据库,我什至可以看到表 __MigrationHistory,但是看起来它无法识别它......
任何有同样问题的人,或者一些调查的好提示?
提前致谢,
安德里亚·比奥利
最佳答案
我有这个问题。我能够通过提供 connectionString
来解决它和一个 connectionProviderName
Update-Database
的参数和 Add-Migration
命令。
如果您的解决方案中有许多项目具有多个配置文件,包管理器似乎很困惑。就我而言,我选择了一个项目作为包管理器控制台的默认项目,但它是从 Visual Studio 解决方案默认启动项目中提取连接字符串。
关于entity-framework - add-migration 不适用于共享主机中的远程 sql server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052105/