IdentityDbContext是否始终需要DefaultConnection

时间:2015-02-20 20:06:41

标签: c# asp.net asp.net-mvc-5 asp.net-identity-2

我在使用IdentityDbContext的asp.net MVC项目中工作。 上下文的代码:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
   public ApplicationDbContext()
    : base("ApplicationDb")
   {
   }
 }

在我的web.config中,以上下文命名的连接字符串:

<add name="ApplicationDb" connectionString="Data Source="..." providerName="System.Data.SqlClient" />

奇怪的是,当我调用Update-Database命令来创建包含Entity Framework的数据库时,我的数据库就被创建了。到目前为止一切都很好。

但是:Owin的授权代码也在运行应用程序时创建了第二个代码。这个名为DefaultConnection,是另一个的副本。

所以我的问题是:即使您将上下文指向另一个连接字符串,Identity Framework是否始终需要一个名为“DefaultConnection”的连接字符串?

最后我设法通过在web.config中添加DefaultConnection连接字符串来解决这个问题,所以我最终得到了两个连接字符串:

  1. ApplicationDb
  2. DefaultConnection
  3. 这真的是要走的路吗?因为如果是这样的话,在基础构造函数中放置自定义连接字符串名称没有多大意义?!

    顺便说一下,我也尝试了这样的上下文:

     public ApplicationDbContext()
     {
     }
    

    理论上应该有效地做同样的事情。但是仍然在运行应用程序时创建DefaultConnection。对我没有意义。

0 个答案:

没有答案