2013-09-21 84 views
0

夥計們,SimpleMembership初始化不會創建所有的表

創建一個新的ASP.NET MVC 4應用程序後,這裏是我做過什麼:

  1. 從數據庫瀏覽器,刪除所有表中默認連接。
  2. 編輯AccountModels.cs並添加了幾個表。
  3. 更新UsersContext類以引用新表: 公共類UsersContext:{的DbContext

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

    }

  4. 運行應用程序。

在調試器中,我看到下面的行被調用:

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

然而,當我看着數據庫,越來越只創建相關SimpleMembershipProvider五個表。我的附加表沒有被創建。

我想知道是否有某個步驟,我錯過了。

非常感謝您的幫助。

問候,
彼得

+0

你爲什麼「刪除默認連接中的所有表」?我認爲這四個網頁_ *表不應該被修改。只要您有兩列(默認UserId,UserName)在您顯示的InitializeDatabaseConnection方法的參數中指定,UserProfile表就可以更改。我之前成功完成了這項工作。 –

+0

@DarthVader說什麼是真實的 - 它是一個整合這兩者的痛苦。我有一個帖子... http://stackoverflow.com/questions/17460372/is-there-a-way-to-make-ef-5-code-first-migrations-use-a-sql-server-database -in-a/17462295#17462295 ..我在哪裏描述了一種簡單的方法來建模默認成員表並將它們添加到您的DbContext中。 – Jack

回答

0

謝謝你的幫助。我終於明白了。默認的InitializeSimpleMembershipAttribute類適用於僅爲簡單成員創建所需的表(和列)。您可以創建自己的初始化程序類,它繼承自CreateDatabaseIfNotExists <>。現在,您可以刪除並重新創建一個空的數據庫。當你運行你的應用程序時,你的所有表格都會自動創建。

彼得

2

您需要創建另一個的DbContext類領域模型。

使用相同的DbContext,UsersContext將在未來導致很多問題。我有那麼多問題。事實證明,你的域模型需要單獨的DbContext。