实体框架4.1代码的SQL Server 2008连接字符串优先

Dav*_*idR 13 configuration web-config entity-framework-4 entity-framework-4.1 asp.net-mvc-3

我需要一个有效的SQL Server 2008连接字符串,用于Entity Framework 4.1代码优先项目.我现在将它用于MVC 3.

现在它仍然很简单,只有1个项目,3个简单的模型类......

我只能找到其他一切,比如Sql Express,网络上的CE连接......

web.config("ApplicationServices")中按名称查找它是可以的,因为当我尝试使用时,我得到了特定的错误.

我能得到的最好的是:

无法加载指定的元数据资源.

我也试着给它,metadata=res://MyWebProject/MyWebProject.csdl| ... 但没有成功.

所以它不会为我创建数据库 - 即使没有命中OnModelCreating(DbModelBuilder modelBuilder)方法.

如果我尝试使用像我在SQL Server Express中找到的"老式"连接,它会错过元数据.

感谢您的帮助.

J. *_*hon 34

"Code-First"的概念是,您不必处理连接字符串中提到的.csdl,.ssdl和.msl文件.如果未在其他地方指定,DbContext将按照您的描述在web.config中查找连接字符串.DbContext类的构造函数将接受一个名称 - 值对,指定web.config中连接字符串的名称.例如:

<connectionStrings>
    <add name="ConnectionName" 
         providerName="System.Data.SqlClient"
         connectionString="Server=ServerName;Database=DatabaseName;Integrated Security=True;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

可以在您的上下文中引用:

class MyContext : DbContext
{
     public MyContext() : base("name=ConnectionName") { }
     ...
}
Run Code Online (Sandbox Code Playgroud)

我提供的示例连接字符串实际上是用于SQL Server数据库.指定ProviderName非常重要,因为"Code-First"要求它生成相应的.ssdl-File(存储架构).