获取错误:
System.Data.ProviderIncompatibleException:从数据库获取提供程序信息时发生错误。这可能是由实体框架使用不正确的连接字符串引起的 检查内部异常以获取详细信息,并确保连接字符串正确 ---> System.Data.ProviderIncompatibleException:提供程序未返回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。同样的问题。
我尝试了连接字符串中的数据源的许多变体,没有工作,这里有一些例子:
如果我这样做。\ SQLEXPRESS它可以工作。
答案 0 :(得分:7)
管理以解决问题。
手动删除迁移文件的底线会导致问题。
确保我的连接字符串如下:
<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时就像魅力一样。
答案 1 :(得分:3)
我通过在我的解决方案中将启动项目设置为实体dll项目(具有app.config文件)来解决它。我确实在Package Manager Console窗口中将“Default project”设置为正确的实体dll项目,但这不起作用。详情
Entity Framework 6 with SQL Server 2012 gives System.Data.Entity.Core.ProviderIncompatibleException 系统数据实体芯providerin
答案 2 :(得分:0)
答案 3 :(得分:0)
当我更改密码时,我遇到了这个问题,SQL Server无法启动。检查:)
答案 4 :(得分:0)
检查,您在连接字符串中使用的SQL Server是否已启动。
答案 5 :(得分:0)
前几天我遇到了同样的问题。原因是我的MSSQL服务器版本。 我试图使用VS2010和SQL SERVER 2008然后它不起作用。 它适用于VS2010附带的SQL Express(它没有启动),但不适用于SQL SERVER。
答案 6 :(得分:-3)
我在VS 2010中使用它并且它起作用了:
使用数据源。\ SQLEXPRESS