为什么需要将连接字符串命名为"DefaultConnection"才能创建数据库 MDF 文件?



我想知道发生了什么:如果我的连接字符串名称是DefaultConnection以外的其他内容,那么.mdf文件将不会在App_data文件夹中创建,并且将创建数据库,并使用名称创建数据库当我访问SQL Server时出现的efaultConnection

如果我将连接字符串重命名为DefaultConnection,则.mdf文件将在App_data文件夹中创建,并且使用SQL Server Management Studio在SQL Server中看不到数据库。

顺便说一句,一旦我尝试使用身份框架创建新用户。

将创建数据库。
<connectionStrings>
    <add name="DefaultConnection" 
         connectionString="Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|JobsWebsiteDB.mdf;Integrated Security=True;User Instance=True"
         providerName="System.Data.SqlClient"/>
</connectionStrings>

您没有,至少我没有。创建DB上下文时,您将需要传递连接字符串的名称。例如,我的连接字符串命名为" LonelyCacheidentity":

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, long, ApplicationUserLogin, ApplicationUserRole, ApplicationUserClaim>
{
    public ApplicationDbContext() : base("LonelyCacheIdentity")
    {
    }
    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Properties<DateTime>().Configure(property => property.HasColumnType("datetime2"));
    }
}

然后,在我的web.config中,我定义了以下连接字符串:

<connectionStrings>
    <add name="LonelyCacheConnection" connectionString="Data Source=localhostSQLEXPRESS;Initial Catalog=lonelycacheproject;Integrated Security=True" providerName="System.Data.SqlClient" />
    <add name="LonelyCacheIdentity" connectionString="Data Source=localhostSQLEXPRESS;Initial Catalog=lonelycacheproject;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

为生产,我将连接字符串转换为在生产服务器上工作。

相关内容

  • 没有找到相关文章