我已安装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可用于打开数据库。
我尝试了解决方案:
有没有可用的解决方案?我浪费了一整天,仍然找不到解决方案。
答案 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;没有命名空间解决了这个问题。