使用以下连接字符串,一切正常。
<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" />
我是一个全力以赴的人,他尽力搜索论坛,但我无法将我的解决方案推迟到“有类似头衔的问题”部分。非常感谢任何帮助。
答案 0 :(得分:10)
EntityFramework代码首先使用app.config中的defaultConnectionFactory或web.config文件,该文件将自动连接到。\ 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,甚至通过添加以您的上下文命名的连接字符串来强制覆盖它。 您还应该检查this blog article,其中提供了有关EF配置文件的详细信息。
答案 1 :(得分:0)
你确定这部分连接是对的吗? “数据源=。\ SQLEXPRESS [名称] ;
我没有使用过SQL Server 2012,但尝试删除[Name]文本。
答案 2 :(得分: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文件中找到连接字符串才能生效。