我想知道发生了什么:如果我的连接字符串名称是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>
为生产,我将连接字符串转换为在生产服务器上工作。