我有一個標準的ASP.NET MVC4應用程序,我用EF Code First構建了DAL。目前大約有20-30個模型,我正處在一個我想要集成用戶和角色的階段。我有這麼多的研究,但似乎無法讓它起作用。以下是我現在所擁有的:SimpleMembershipProvider不向我的數據庫中添加表
在我的數據庫動初始化類(被調用每一次我改變模型的時間),我與一羣數據的種子,然後把這個:
public class DbInit : DropCreateDatabaseIfModelChanges<TrackerContext>
{
protected override void Seed(TrackerContext context)
{
...seed stuff and save it...
WebSecurity.InitializeDatabaseConnection("TrackerContext", "User", "Id", "UserName", autoCreateTables: true);
}
}
通過調試它不會拋出任何錯誤,我可以確認它正在打這行代碼。我的用戶模型是這樣的:
public class User
{
public int Id { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public PasswordQuestion PasswordQuestion{ get; set; }
public string PasswordAnswer { get; set; }
public string Type { get; set; }
}
一切從我讀,我想這應該是所有我需要做的就是這個工作,但我有兩個問題:
沒有會員表被加載
我的配置似乎被拋即使我引用WebMatrix.WebData DLL
下面是配置部分:
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
缺少什麼我在這裏?
真的,你想要你創建類DbContext類,這是遷移進入並創建這些表的地方,但對於這個特殊問題,我正在討論使用簡單成員資格提供程序創建的表。這些表是在調用WebSecurity.InitializeDatabaseConnection(...)行時創建的。這是一個較老的問題,所以我不知道我的確切問題在這裏,但現在我通常將該行放在我的global.asax中,與遷移分離,並且它工作正常。 – ledgeJumper
所以你說的是Simple Membership Provider在數據庫中包含的表格?我可以在這裏討論2個教程。我有一個類似的問題,那些表沒有創建,因爲我不得不手動創建它們。但我很高興看到你解決了。 – Yustme