SimpleMembership初始化程序不会创建所有表

时间:2013-09-21 23:30:11

标签: asp.net-mvc asp.net-mvc-4

民间,

创建新的ASP.NET MVC 4应用程序后,我就是这样做的:

  1. 从数据库资源管理器中删除默认连接中的所有表。
  2. 编辑了AccountModels.cs并添加了几个表。
  3. 更新了UsersContext类以引用新表:   public class UsersContext:DbCOntext {

      ...
      DbSet<Items> Items {get; set; }
    

    }

  4. 跑完应用程序。

  5. 在调试器中,我看到调用了以下行:

    WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
    

    但是,当我查看数据库时,只创建了与SimpleMembershipProvider相关的五个表。我的附加表没有被创建。

    我想知道是否有一些错过的步骤。

    提前感谢您的帮助。

    的问候,
    彼得

2 个答案:

答案 0 :(得分:2)

您需要为您的域模型创建另一个DbContext类。

使用相同的DbContext,UsersContext将来会引起很多问题。我有很多问题。事实证明,您需要为您的域模型提供单独的DbContext。

答案 1 :(得分:0)

感谢您的帮助。我终于明白了。默认的InitializeSimpleMembershipAttribute类适用于为简单成员资格创建所需的表(和列)。您创建自己的初始化类,该类继承自CreateDatabaseIfNotExists&lt;&gt;。现在,您可以删除并重新创建一个空数据库。运行应用程序时,将自动创建所有表。

彼得