我正在尝试使用SQL Server 2014 Entity Framework创建两个数据库。一个是使用asp.net身份“自动”创建的,另一个是我在Configuration.cs
中使用种子方法创建的。
两者在连接字符串中具有相同的SQL登录名,但是仅创建身份数据库。对于另一个,发生以下错误:
基础提供程序在打开时失败。 [...]
System.Data.SqlClient.SqlException:无法打开登录请求的数据库“ dbname”。登录失败。
以下是连接字符串:
<connectionStrings>
<add name="AntContext"
connectionString="Database=dbname;User Id=user; Password=mypw;"
providerName="System.Data.SqlClient" />
<add name="DefaultConnection"
connectionString="Database=dbnameidentity;User Id=user; Password=mypw;"
providerName="System.Data.SqlClient" />
</connectionStrings>
在SQL Server Management Studio中进行检查,创建了数据库dbnameidentity
,甚至填充了来自Configuration.cs
的种子数据,但对于另一个数据库,登录失败。
我不知道为什么会这样。如有必要,我将提供更多信息。谢谢。
这是我播种方法的负责人。
protected override void Seed(IdentityDbContext context)
{
var antcontext = new DataContext.AntContext();
答案 0 :(得分:1)
如果您没有为上下文设置初始化器。这意味着它将不会尝试创建数据库。如果要确保已创建数据库,则可以使用CreateDatabaseIfNotExists
初始化程序,例如:
public class AntContext: DbContext
{
public AntContext(): base("AntContext")
{
Database.SetInitializer<AntContext>(new CreateDatabaseIfNotExists<AntContext>());
}
//snip
}