繁体   English   中英

EF代码优先数据库:两个数据库之一的同一个用户登录失败,等效连接字符串

[英]EF code first database: login failed for same user for one of two databases, equivalent connection string

我正在尝试使用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种子数据填充数据库dbnameidentity ,但是对于另一个数据库,登录将失败。

我不知道为什么会这样。 如有必要,我将提供更多信息。 谢谢。

这是我的播种方法的负责人。

 protected override void Seed(IdentityDbContext context)
 {
        var antcontext = new DataContext.AntContext();

如果您没有为上下文设置初始化程序 这意味着它将不会尝试创建数据库。 如果要确保已创建数据库,则可以使用CreateDatabaseIfNotExists初始化程序,例如:

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

    //snip
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM