我目前编写的API没有天蓝色连接。我现在准备将此发布到Azure。在这样做的过程中,我假设,与许多其他部署一样,可以选择代码优先迁移。该网站已经存在,所以当我登录时,我在下拉列表中选择了我的网站,但是我得到的屏幕如下所示,代码优先迁移复选框应该是:
如何更正此问题,以便我可以使用代码优先迁移进行部署?
答案 0 :(得分:0)
我找到了解决这个问题的方法。如果发生这种情况,那么您的发布配置文件将设置为更新数据库架构,但不允许代码首次迁移。我无法说出为什么Visual Studio有时会这样做,但要修复它,您需要更改代表该配置文件的xml文件。它们可以在“发布配置文件”文件夹下找到。最有可能的是,您的<PublishDatabaseSettings>
元素将包含<Object Type="Dbfx...etc.">
和可能的<UpdateFrom>
元素。摆脱这些并用下面的替换设置。
<PublishDatabaseSettings>
<Objects xmlns="">
<ObjectGroup Name="Namespace.Models.YourDBClass" Order="1" Enabled="True">
<Destination Path="your-connection-string-goes-here" />
<Object Type="DbCodeFirst">
<Source Path="DBMigration" DbContext="Namespace.Models.YourDBClass, AssamblyName" MigrationConfiguration="Namespace.Migrations.Configuration, Assambly" Origin="Convention" />
</Object>
</ObjectGroup>
</Objects>
</PublishDatabaseSettings>
现在清理并重建以获得良好的衡量标准,您应该准备好了。请注意,如果您不删除PublishDatabaseSettings元素中的其他预生成元素,架构将在发布时更新,您第一次尝试命中API时可能会出错,并且会发生迁移。在我的情况下,在大多数情况下,它将是一个“X已存在”错误,因为迁移正在尝试创建已使用模式更新创建的表。
我能够找出问题并在本文的帮助下予以纠正:http://www.dominicstpierre.com/2012/11/enable-code-first-migrations-check-box.html