首先执行代码迁移

时间:2015-05-22 08:42:38

标签: asp.net-mvc ef-migrations

我已安装Windows 8.1 pro并使用VS 2013 Community Edition将所有MVC项目移至新的工作区。所有项目都使用代码首次迁移。 数据库发布也使用代码优先迁移完成。在更新我的机器之前一切正常。

但是,当我将Web应用程序发布到远程服务器时,发布Web'对话框没有显示"首先执行代码迁移"而不是显示"更新数据库"用于更新数据库。 当我关闭它时,它会修改DB First的发布文件。似乎某些全局设置强制执行以下代码:

 <Objects xmlns="">
        <ObjectGroup Name="DefaultConnection" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbDacFx">
            <PreSource Path="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MVC-20140923125211.mdf;Initial Catalog=MVC-20140923125211;Integrated Security=True" includeData="False" />
            <Source Path="$(IntermediateOutputPath)AutoScripts\DefaultConnection_IncrementalSchemaOnly.dacpac" dacpacAction="Deploy" />
          </Object>
          <UpdateFrom Type="Web.Config">
            <Source MatchValue="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MVC-20140923125211.mdf;Initial Catalog=aspnet-MVC-20140923125211;Integrated Security=True" MatchAttributes="$(UpdateFromConnectionStringAttributes)" />
          </UpdateFrom>
        </ObjectGroup>
      </Objects>

奇怪的是为什么&#34;执行代码第一次迁移&#34;没有显示我的所有项目。

此行为对我所有其他项目也是如此。

App_Data数据库也无法打开。所以我改变了connectionString&#39;数据源从数据源=(LocalDb)\ v11.0 数据源=(LocalDb)\ MSSQLLocalDB(MSSQL Sever 2014 express)。更改DataSource可用于打开数据库。

我尝试了解决方案:

几个月前我尝试过解决方案。那个时候上面的几点有效,但现在没什么用了。

有没有可用的解决方案?我浪费了一整天,仍然找不到解决方案。

3 个答案:

答案 0 :(得分:0)

您需要安装Visual Studio更新4.转到工具下的扩展和更新。

答案 1 :(得分:0)

您可能会觉得这很有用:

Entity Framework Code First Data Migrations not working with VS2012 Web Deploy

我自己仍在努力寻找一种处理迁移的简单方法。

答案 2 :(得分:0)

我找到了一个临时解决方案。手动将所有ConnectionString名称(Defaultconnection)替换为上下文名称&#34; ApplicationDbContext&#34;没有命名空间解决了这个问题。