我是第一次接触ef代码,刚刚使用反向工程代码在Microsoft SQL Server2008上创建了一个现有数据库的模型。
我遇到的问题是,尽管我在连接字符串中提供了用户ID和密码,但在抱怨我的计算机名称时,它给了我一个身份验证错误,就好像我使用的是集成安全性(其实不然)。
我得到的错误是:
无法打开登录所请求的数据库\"edmTestDBContext\“。登录失败。\r\n用户'jwelty-thinkpad\jwelty‘登录失败。
我的connectionString是这样的:
数据源= ID=user;Password=userpass;MultipleActiveResultSets=True -123;初始Catalog=edmTestDB;Persist安全Info=True;User srv
在我看来,它好像忽略了我的用户ID,而使用了我的机器名称。
有趣的是,连接字符串是由实体框架工具自动生成的,它用于构建模型,而不是实际将模型连接回源数据库。
对发生了什么有什么想法吗?
我的用户名/密码具有完全权限,因为这是我在Sql Server Management Studio中使用的用户名/密码,也是我最初创建数据库的方式。
我尝试添加“集成的Security=False;”,但没有任何帮助。
发布于 2012-06-01 03:56:00
看起来EF找不到您的连接字符串。确保它在正在使用的配置文件中(您可能需要将它从类库配置复制到应用程序配置),并且它与上下文类具有相同的名称,或者通过调用适当的基构造器为DbContext提供名称。例如:
public EdmTestDBContext()
: base("name=MyConnectionStringName")
{
}发布于 2012-06-01 13:51:30
EF Code-first中有一些内置的约定,例如使用来自DbContext的派生上下文类的名称在.config文件中查找相关的连接字符串。因此,如果您的上下文类被命名为BlogContext,它将首先查找以下connectionString:
<connectionStrings>
<clear />
<add
name="BlogContext"
...https://stackoverflow.com/questions/10838054
复制相似问题