得到错误:
System.Data.ProviderInknownException:从数据库获取提供程序信息时发生错误。这可能是由于实体框架使用了不正确的连接字符串造成的。
检查内部异常的详细信息并确保连接字符串正确。
---> System.Data.ProviderInknownException:提供程序未返回 ProviderManifestToken 字符串。
---> System.Data.SqlClient.SqlException: 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供商:SQL 网络接口,错误:25 - 连接字符串无效)
当我尝试做一个时遇到同样的错误Add-Migration
这是我的连接字符串,我需要访问本地 SQL 服务器而不是 SQLEXPRESS。
<connectionStrings>
<add name="ReaderInsightDbContext"
connectionString="data source=localhost\MSSQLSERVER;
initial catalog=ReaderInsight;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
我的数据库位于:
C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA
所以我的实例是MSSQLSERVER。不知道发生了什么事。一开始工作得很好,但在我更改代码以使用 UOW 模式后,这种情况就发生了。我还从 EF 4.3 升级到 EF5。同样的问题。
我在连接字符串中尝试了多种数据源变体,但都不起作用,以下是一些示例:
- 本地主机\MSSQLSERVER
- .\MSSQLSERVER
- //本地主机\MSSQLSERVER
- (本地)\MSSQLSERVER
- 127.0.0.1\MSSQLSERVER
如果我这样做 .\SQLEXPRESS 它会起作用。
设法解决了它。
底线手动删除迁移文件会导致问题。
确保我的连接字符串如下所示:
<connectionStrings>
<add name="ReaderInsightDbContext"
connectionString=
"Data Source=(local);Initial Catalog=ReaderInsight;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
执行了一个Update-Database -TargetMigration:$InitialDatabase
这不起作用,因为它说仍有待更改。
所以我表演了
System.Data.Entity.Database.SetInitializer(
new System.Data
.Entity
.DropCreateDatabaseIfModelChanges<ReaderInsightDbContext>());
在 global.asax 文件中。
注释掉了,这样就不会再运行了。然后,我执行了 Add-Migration Init,它为整个数据库重新创建了脚本,当我运行 Update-Database 时,它就像一个魅力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)