我想知道这是怎么回事:如果我的连接字符串名称不是DefaultConnection
,那么将不会在.mdf
文件夹中创建App_data
文件,并且数据库将创建的名称为efaultConnection
的名称,就像我转到SQL Server时所显示的一样。
如果我将连接字符串重命名为DefaultConnection
,那么将在.mdf
文件夹中创建App_data
文件,并且在使用SQL Server Management Studio的SQL Server中看不到数据库。
顺便说一句,一旦我尝试使用Identity Framework创建新用户,就会创建数据库。
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\JobsWebsiteDB.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient"/>
</connectionStrings>
答案 0 :(得分:0)
您没有,至少我没有。创建数据库上下文时,需要传递连接字符串的名称。例如,我的连接字符串名为“ 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=localhost\SQLEXPRESS;Initial Catalog=lonelycacheproject;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="LonelyCacheIdentity" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=lonelycacheproject;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
对于生产,我将连接字符串转换为可在生产服务器上使用。