Azure EF Code First Migration Initializer

nas*_*ski 4 entity-framework azure entity-framework-4 ef-code-first ef-migrations

我只是搞乱Azure,我似乎无法让我的Db工作.我按照它在这里说的那样:https://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database/并且我更新了我的web.config以获得:

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
      <contexts>
          <context type="DownloadThis.Models.DownloadThisDb, DownloadThisDb">
              <databaseInitializer type="System.Data.Entity.MigrateDatabaseToLatestVersion">
                  <parameters>
                      <parameter value="DownloadThisDb_DatabasePublish" />
                  </parameters>
              </databaseInitializer>
          </context>
      </contexts>
  </entityFramework>
Run Code Online (Sandbox Code Playgroud)

如示例中所示,但我不断收到此错误:

初始化字符串的格式不符合从索引0开始的规范.

我已经三次检查了我的connectionString,所以这不是 - 任何想法?

Joe*_*one 8

假设您使用VS2012发布向导发布,我遇到了同样的问题.如果您选择让发布向导启用代码首次迁移而不是在代码中手动连接它们,则需要在发布设置中提供连接字符串.您的常规连接字符串不用于运行迁移,此新连接字符串仅用于此目的.这很好,因为您可以指定具有提升权限的帐户来执行迁移,但是,您的应用程序不会在此用户上下文中运行.问题是向导不需要非常明显地指定此连接字符串.当你不提供这个时,你最终得到一个空的迁移连接字符串,你花了很多时间试图弄清楚你的普通连接字符串有什么问题.

发布Web应用程序设置

假设您的上下文类名为FooContext.按照惯例,您的web.config中将有一个名为FooContext的连接字符串.通过此向导启用代码迁移时,向导将创建名为FooContext_DatabasePublish的第二个连接字符串,该字符串仅用于运行代码首次迁移.

MSDN上的这篇博文详细解释了这个过程.