2

使用以下连接字符串一切正常。

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />

我最近在本地机器上安装了 SQL Server 2012 Express 进行测试,但无法建立连接。这是我使用 Windows 身份验证的连接字符串。

<add name="ApplicationServices" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=SSPI;" providerName="System.Data.SqlClient" />

我是一个尽最大努力搜索论坛的菜鸟,但我无法从“具有相似标题的问题”部分推迟我的解决方案。任何帮助是极大的赞赏。

4

3 回答 3

10

EntityFramework 代码首先在 app.config 或 web.config 文件中使用 defaultConnectionFactory,它将自动连接到 .\SQLEXPRESS。此配置如下所示:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
  </entityFramework>

如果您使用的是 EF Code First,您可能有一个派生自 DbContext 的类用作上下文。按照设计,EntityFramework 将查找与您的上下文类同名的连接字符串,并使用该连接字符串而不是 defaultConnectionFactory。这就是我使用它的方式:

<connectionStrings>
    <add name="ObjectContext" 
         connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=My.Db.Name; Integrated Security=True; MultipleActiveResultSets=True"
         providerName="System.Data.SqlClient"/>
  </connectionStrings>

我的建议是检查 EF 是否使用它的 defaultConnectionFactory ,甚至通过添加以您的上下文命名的连接字符串来强制覆盖它。您还应该查看这篇博客文章,其中提供了有关 EF 配置文件的详细信息。

于 2012-08-01T12:56:37.910 回答
0

你确定这部分连接是正确的吗?"数据源=.\SQLEXPRESS [名称]

我没有使用 SQL Server 2012,但尝试删除 [Name] 文本。

于 2012-04-27T12:36:40.260 回答
0

这对我有用

add name="MovieDBContext" connectionString="Data Source=.\SQLEXPRESS;
Initial Catalog=Movies;
Integrated Security="True" providerName="System.Data.SqlClient"

我正在完成本教程并且必须解决它。MovieDBContext 是在 mvc 应用程序模型中的代码中创建的

public class MovieDBContext : DbContext
{
    public DbSet<Movie> Movies { get; set; }
}

这会自动创建控制器类的 IDE,但直到我在 web.config 文件中获得连接字符串后它才会起作用。

于 2013-04-10T19:12:39.820 回答