“Membership.Provider必须是ExtendedMembershipProvider的实例”

我正在使用Microsoft Visual Studio express 2012 for web编写MVC4网站。 每当我在程序包管理器控制台中运行“Update-Database”时,都会发生以下exception:

要调用此方法,“Membership.Provider”属性必须是实例
 “ExtendedMembershipProvider”。

这是我的种子方法:

protected override void Seed(GNSystem.Models.DataContext context) { context.Forums.AddOrUpdate( new Forum { ForumName = "Hello" }, new Forum { ForumName = "World" }, new Forum { ForumName = "!" } ); context.UserProfiles.Add(new UserAccount { UserName = "Gilad", EMail = "gilad.doom@gmail.com" }); WebSecurity.CreateUserAndAccount("Gilad", "123456"); WebSecurity.Login("Gilad", "123456"); context.Threads.AddOrUpdate( new Thread { Subject = "FirstThread", Content = "Awesome Content", ForumID = 1, UserID = 1 }, new Thread { Subject = "SecondThread", Content = "Awesome Content", ForumID = 1, UserID = 1 } ); } 

我搜索了解决方案并在Web.config文件中添加了以下指令:

  

但是除了这个例外。

这是什么原因? 编辑1:

       

在使用WebSecurity.CreateUserAndAccount("Gilad", "123456"); 必须初始化SimpleMembership。 这通常在AccountController上使用[InitializeSimpleMembership]属性完成,但由于您尝试在Seed中调用这些方法,因此需要以另一种方式初始化它。

 protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context) { context.Departments.AddOrUpdate(d => d.Name, new Department() { Name = "Engineering" }, new Department() { Name = "Sales" }, new Department() { Name = "Shipping" }, new Department() { Name = "Human Resources" }); if (!Roles.RoleExists("Admin")) { Roles.CreateRole("Admin"); } if (Membership.GetUser("wayne") == null) { Membership.CreateUser("wayne", "P@ssword"); Roles.AddUserToRole("wayne", "Admin"); } 

请检查您在此应用程序中使用的成员资格提供程序是否inheritance自MembershipProvider或ExtendedMembershipProvider。 确保它inheritance自ExtendedMembershipProvider类。