可以SimpleMembership使用EF模型優先?當我嘗試它時,當我撥打WebSecurity.InitializeDatabaseConnection.
使用SimpleMembership與EF模型優先
時,我收到「無法找到請求的.NET Framework數據提供程序」:換句話說:當連接字符串使用了連接字符串時,我無法調用WebSecurity.InitializeDatabaseConnection
System.Data.EntityClient
提供者(與使用模型優先範例時一樣)。
要與你有模型的第一 User類攝製的問題,創建一個MVC 4應用程序,並更換代碼優先用戶配置實體類(你獲得自由與MVC 4模板)在實體設計創建:
- 在創建一個MVC 4應用程序VS 2012,並添加一個新的空白實體數據模型 。
- 將一個新的實體名爲
User
添加到模型中,字段爲Id,
UserName, and FullName
。所以,在這一點上,User
數據實體是 映射到Users
表,並通過時髦的連接訪問 字符串,它使用System.Data.EntityClient
提供程序。 - 驗證EF可以訪問
User
實體。執行 的一種簡單方法是根據用戶表 及其關聯的DbContext腳架出用戶控制器。 - 編輯
AccountModels.cs
文件刪除UserProfile
類和 其關聯的UsersContext
類。將對 (現在缺失)UserProfile
和UsersContext
類的引用替換爲您的新用戶類及其關聯的DbContext
類的引用 。 - 將調用InitializeDatabaseConnection從 InitializeSimpleMembershipAttribute過濾器類移到Global.asax.cs中的 Application_Start方法。當您在此時, 修改參數以使用您的新用戶實體的連接 字符串,表名和UserId列名稱。
- 刪除(不再使用)
InitializeSimpleMembershipAttribute
類及其引用。
當你運行攝製,它會在呼叫得到異常到InitializeDatabaseConnection.
鮑勃
你的意思是替換public DbSet UserProfiles {get;組; }(public DbSet userProfiles {get; set;})。我對此有所修正 –
@PeterEdike是的,這就是我想要做的。我嘗試用我的模型優先的東西來替換所有代碼優先的東西,但是我發現SimpleMembership不適用於連接字符串中的模型優先。正如Mario Zderic所說,解決方案是使用看起來像代碼優先的連接字符串。 –