Asp.net 我们可以让实体框架代码先创建SQL Server Express数据库而不是默认的LocalDB吗?

Asp.net 我们可以让实体框架代码先创建SQL Server Express数据库而不是默认的LocalDB吗?,asp.net,asp.net-mvc,entity-framework,ef-code-first,localdb,Asp.net,Asp.net Mvc,Entity Framework,Ef Code First,Localdb,在Visual Studio 2013中,我创建了一个具有ASP.NET标识的ASP.NET MVC web项目 实体框架代码首先在中创建了SQLServerExpressLocalDB 默认情况下,APP_数据文件夹 但我更喜欢SQL Server Express db,因为当我在本地IIS中托管web应用时,SQL Server Express LocalDB无法与IIS一起工作 所以我的问题是 在使用EF代码创建新项目时,如何在默认情况下创建SQL Server Express db而不是

在Visual Studio 2013中,我创建了一个具有ASP.NET标识的ASP.NET MVC web项目

实体框架代码首先在中创建了SQLServerExpressLocalDB

默认情况下,APP_数据文件夹

但我更喜欢SQL Server Express db,因为当我在本地IIS中托管web应用时,SQL Server Express LocalDB无法与IIS一起工作

所以我的问题是

  • 在使用EF代码创建新项目时,如何在默认情况下创建SQL Server Express db而不是SQL Server Express LocalDB

    在VS2013的“工具-选项-数据工具-数据连接-实例名称”中,我已将“(LocalDB)\v11.0”替换为“\SQLEXPRESS”,我也安装了SQL Server Express。但他们不为我工作

  • 假设现在我们必须将SQL Server Express LocalDB用于ASP.Net Identity和my db,我想知道当我完成开发并将我的应用部署到IIS时,是否有一种简单的方法将我的LocalDB转换为SQL Server Express或SQL Server db


  • 提前感谢。

    请先在代码中指定连接字符串名称
    DbContext
    类,如下所示:

    public class MyDbContext : DbContext
    {
        public MyDbContext(): base("name=connectionString")
        {
        }
    
        public DbSet<User> Users { get; set; }
        public DbSet<Order> Orders { get; set; }
    }
    
    公共类MyDbContext:DbContext
    {
    public MyDbContext():base(“name=connectionString”)
    {
    }
    公共数据库集用户{get;set;}
    公共数据库集命令{get;set;}
    }
    
    然后在Web.config文件中指定连接字符串,以指向所需的SQL server版本:

      <connectionStrings>
        <add name="connectionString" connectionString="Password=password;Persist Security Info=True;User ID=sa;Initial Catalog=DatabaseName;Data Source=ServerName"
          providerName="System.Data.SqlClient" />
      </connectionStrings>
    

    经过多次尝试,我自己找到了答案,希望在这里与大家分享

  • 只需将web.config中DefaultConnection的值从“(LocalDB)\v11.0”修改为“.\SQLEXPRESS”,并在生成DB之前为上下文登录id授予足够的权限(如果在NuGet PkgMgr控制台中使用update database命令,或在vs中运行web应用程序)

  • 您可以将LocalDB文件附加到SQL Server Express实例


  • 希望对其他人有所帮助。

    问题出在哪里?只需在web.config中将连接字符串从LocalDb更改为。\SqlExpress?!中的连接字符串位于应用程序\u数据中