Entity framework 如何将EF默认值从SQLServerExpress数据库创建更改为本地SQLServer2008实例?

Entity framework 如何将EF默认值从SQLServerExpress数据库创建更改为本地SQLServer2008实例?,entity-framework,asp.net-mvc-3,entity-framework-4.1,Entity Framework,Asp.net Mvc 3,Entity Framework 4.1,有人能告诉我如何设置我的MVC3应用程序,以便当它第一次创建数据库时,它在SQL Server 2008的本地(或远程)实例中创建数据库,而不是使用SQL Server Express吗?因此,如果您使用的是EF,那么您将使用一个类来连接,例如 public class EFDbContext : DbContext { public DbSet<Product> Products { get;

有人能告诉我如何设置我的MVC3应用程序,以便当它第一次创建数据库时,它在SQL Server 2008的本地(或远程)实例中创建数据库,而不是使用SQL Server Express吗?

因此,如果您使用的是EF,那么您将使用一个类来连接,例如

public class EFDbContext : DbContext
    {
        public DbSet<Product> Products
        {
            get;
            set;
        }
    }
公共类EFDbContext:DbContext
{
公共数据库集产品
{
得到;
设置
}
}
现在,您只需要在项目的WebConfig文件(而不是Views文件夹中的WebConfig)中设置一个连接字符串。在配置节点下添加ConnectionString部分,如下所示。注意:类和连接字符串必须共享相同的名称—在本例中为“EFDbContext”



“SERVERNAME\”将把您连接到默认安装。如果您正在本地计算机上寻找默认安装,只需输入您的计算机名即可。如果您更喜欢使用窗口身份验证而不是SQL Server身份验证,只需将连接字符串的UserID/Pwd部分替换为“Integrated Security=true”。HTH

您可以按照以下方式使用构造函数选择连接字符串:

Public class EFDbContext : DbContext
{
   public EFDbContext() : base("dbconninfo"){}
}

<configuration>
  <connectionStrings>
    <add name="dbconninfo" connectionString="Data Source=SERVERNAME\;Initial Catalog=DATABASENAME;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD" 
    providerName="System.Data.SqlClient"/>
  </connectionStrings>
公共类EFDbContext:DbContext
{
public EFDbContext():base(“dbconninfo”){}
}

我在webconfig(而不是视图)中更改了连接字符串,添加了一个新的连接字符串,并注释掉了旧的连接字符串。它没有工作,因为它仍然连接到原来的一个。事实上,如果我注释掉整个连接字符串部分,应用程序仍然会运行并连接到旧数据库并加载数据。我已尝试清理项目并删除临时文件,但它以某种方式将旧数据库缓存在某个位置。使用Ctrl-F搜索数据库,并检查服务器资源管理器中的任何对象/连接。
Public class EFDbContext : DbContext
{
   public EFDbContext() : base("dbconninfo"){}
}

<configuration>
  <connectionStrings>
    <add name="dbconninfo" connectionString="Data Source=SERVERNAME\;Initial Catalog=DATABASENAME;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD" 
    providerName="System.Data.SqlClient"/>
  </connectionStrings>