ef-code-first的数据库连接错误

时间:2012-05-31 17:04:23

标签: entity-framework ef-code-first code-first

我是ef代码的新手,并且刚刚使用反向工程代码在Microsoft SQL Server 2008上创建现有数据库的模型。

我遇到的问题是,即使我在连接字符串中提供用户ID和密码,它也会在抱怨我的计算机名称时给出一个身份验证错误,就好像我使用的是集成安全性(我是不。)

我得到的错误是:

无法打开登录请求的数据库\“edmTestDBContext \”。登录失败。\ r \ n登录用户'jwelty-thinkpad \ jwelty'失败。

我的connectionString是这样的:

Data Source = srv-123; Initial Catalog = edmTestDB; Persist Security Info = True; User ID = user; Password = userpass; MultipleActiveResultSets = True

它跟我联系,就像它忽略了我的用户名并改为使用我的机器名。

有趣的是,连接字符串是由Entity Framework工具自动生成的,它可用于构建模型,但不能将模型实际连接回源数据库。

有关正在发生的事情的任何想法?

我对我的用户名/密码拥有完全权限,因为这是我在Sql Server Management Studio中使用的,这也是我首先创建数据库的方式。

我尝试添加“Integrated Security = False;”那没有用。

2 个答案:

答案 0 :(得分:0)

看起来EF没有找到你的连接字符串。确保它在正在使用的配置文件中(您可能需要将其从类库配置复制到应用程序配置)并且它与上下文类具有相同的名称,或者通过调用向DbContext提供名称适当的基础构造函数。例如:

public EdmTestDBContext()
 : base("name=MyConnectionStringName")
{
}

答案 1 :(得分:0)

EF Code-first中有一些内置约定,例如使用DbContext中的派生上下文类的名称来查找.config文件中的相关连接字符串。 因此,如果您的上下文类名为BlogContext,它将首先查找以下connectionString:

<connectionStrings>
    <clear />
    <add
      name="BlogContext"
...