2016-11-07 31 views
0

在使用Entity Framework 6.0代码的新开发项目中,我首先必须更新我的模型。在Package Manager Console中使用Add-Migration自动生成的更新脚本变得相当复杂,因此我决定重新开始。为此,我从本地主机删除数据库,并删除项目中的Migrations文件夹。然而,当我重新跑Add-Migration -command我得到了下面的消息,并再次产生相同的更新脚本:实体框架代码优先瞄准LocalDb而不是本地SQL Server Express主机

这个迁移文件设计器代码包括您 当前的Code First模型的快照。当您搭建下一个迁移时,此快照用于计算对您的模型的更改 。

我很确定这是因为__MigrationHistory -table仍然在那里。我再次进入数据库,但没有创建任何数据库,数据库仍然消失。在web.config使用

连接字符串:

<connectionStrings> 
    <add name="DefaultConnection" 
     connectionString="Data Source=localhost;Initial Catalog=WebApp;Integrated Security=sspi;Pooling=false;" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

然后我检查了我的过程,看到了sqlservr.exe进程外的两个版本的LocalDB浮现在脑海。我连接到(LocalDb)\MSSQLLocalDB,并且有一个名为“DefaultConnection”的新数据库,其中包含项目的所有表。当我删除这个数据库时,我从Add-Migration -command得到了一个新脚本。在某处沿线必须有一台交换机,因为我100%肯定我在某个时间(在更新脚本之前的所有表格,当我删除数据库时)一直在使用SQL Server Express主机,以及所有我的其他项目localhost与Data Source=localhost合作。我不明白为什么数据库名称是DefaultConnection而不是WebApp。连接到本地主机,数据库名称为WebApp。有谁之前经历过这个吗?

enter image description here

回答

1

终于找到了答案。在包管理器控制台中,将Default project设置为包含DbContext的项目是不够的还需要确保将您的网站设置为默认启动项目!

这个小小的变化让所有事情都能够正常工作。

我无法在任何地方找到它,所以我希望它能帮助别人。

相关问题