EF代码第一个数据库:登录失败,同一用户对两个数据库之一,相当于连接字符串

问题描述 投票:0回答:1

我试图创建两个数据库与SQL Server 2014年,实体框架。一个与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();
c# entity-framework asp.net-mvc-5 sql-server-2014 connection-string
1个回答
1
投票

如果你没有为你的上下文中的初始化器集。这意味着它不会尝试创建数据库。如果你想确保DB被创建,那么你可以使用CreateDatabaseIfNotExists初始化器,例如:

public class AntContext: DbContext 
{
    public AntContext(): base("AntContext") 
    {
        Database.SetInitializer<AntContext>(new CreateDatabaseIfNotExists<AntContext>());    
    }

    //snip
}
© www.soinside.com 2019 - 2024. All rights reserved.