我刚刚更新了我的EntityFramework EntityFramework.4.1.10331.0 至 EntityFramework.4.1.10715.0
使用此版本,我无法使用集成安全性或基于SQL的身份验证连接到本地计算机或各种远程计算机上的单个数据库实例。
如果我使用旧的4.1.10331.0版本,那么连接仍然可以正常工作。
我得到的具体错误如下,但我连接的实例都是默认实例。
发生与网络相关或特定于实例的错误 建立与SQL Server的连接。找不到服务器或 无法访问。验证实例名称是否正确 SQL Server配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 查找服务器/实例时出错 指定)
我的基于SQL的身份验证连接字符串如下所示
服务器=本地主机;数据库= dbname;开发UID =用户名; PWD =密码;
是否还有其他人遇到此问题,或者有人可能会提出可能的原因吗?
答案 0 :(得分:2)
确保您的连接字符串具有指定的provider
属性:
SERVER=localhost;DATABASE=dbname;USER ID=username;
PASSWORD=password;PROVIDER=System.Data.SqlClient;
答案 1 :(得分:0)
我设法让这个工作,但我仍然不完全确定它背后的原因是什么。我认为它可能与Yuck建议的提供者配置有关。
对于4.1.10331.0版本,我在DBContext上设置了connectionstring,如下所示,它工作正常。
Context.Database.Connection.ConnectionString = "Server=localhost;Database=dbname;UID=username;PWD=password;"
但是,对于构建4.1.10715.0,这将导致错误:26 - 找到服务器/实例指定的异常时出错。
我现在将connectionstring传递给我的上下文的构造函数,然后将其传递给它的基础构造函数。然后一切都按预期正常工作。
public TestContext(string nameOrConnectionString) : base(nameOrConnectionString) {}
...
var context = new TestContext("Server=localhost;Database=dbname;UID=username;PWD=password;")