无法将类型为"System.Web.Security.SqlRoleProvider"的对象强制转换为"WebMatrix.WebData.SimpleRoleProvider"

ppo*_*ani 3 sql-server asp.net-mvc entity-framework

我开发了一个带有Entity Frame的mvc web应用程序.我已启用数据库迁移,以便我可以在每次更新时添加一些种子数据.更具体地说,我想添加两个用户和两个角色; 所以配置文件如下所示:

        var roles = (SimpleRoleProvider)Roles.Provider;
        var membership = (SimpleMembershipProvider)Membership.Provider;

        //// create two roles 
        if (!roles.RoleExists("Admin"))
        {
            roles.CreateRole("Admin");
        }
        if (!roles.RoleExists("User"))
        {
            roles.CreateRole("User");
        }
Run Code Online (Sandbox Code Playgroud)

但是在铸造期间似乎存在问题; 它引发了一个例外

 Unable to cast object of type 'System.Web.Security.SqlRoleProvider' to type 'WebMatrix.WebData.SimpleRoleProvider'.
Run Code Online (Sandbox Code Playgroud)

我怀疑这可能是配置问题,但我不确定.有没有人偶然发现同样的问题?

Mar*_*zek 5

那是因为SqlRoleProvider不继承SimpleRoleProvider.但是,您可以尝试使用SimpleRoleProviderConstructor(RoleProvider):

var roles = new SimpleRoleProvider(Roles.Provider);
Run Code Online (Sandbox Code Playgroud)