使用SimpleMembership(MySQL)将用户添加到角色时的外键问题

时间:2015-06-30 10:22:38

标签: c# mysql asp.net-mvc foreign-keys simplemembership

我正在尝试在Code First项目中使用SimpleMembership和MySQL。这是我做的初始化器:

        WebSecurity.InitializeDatabaseConnection("MyConnectionStringName", "UserProfile", "UserId", "UserName", false);

        if (!Roles.RoleExists("Employee"))
        {
            Roles.CreateRole("Employee");
        }

        if (!WebSecurity.UserExists("Kurt"))
        {
            WebSecurity.CreateUserAndAccount("Kurt", "test");
            Roles.AddUserToRole("Kurt", "Employee");
        }

AddUserToRole出现以下异常:

  

无法添加或更新子行:外键约束失败(ticketwebpages_usersinroles,CONSTRAINT fk_RoleId FOREIGN KEY(RoleId)参考webpages_rolesRoleId))

用户已添加到表格userprofile(和webpages_membership),并且角色已添加到webpages_roleswebpages_usersinroles仍然是空的。由于一个神秘的原因,MySQL无法引用该角色。我该如何解决这个问题?

提前致谢!

2 个答案:

答案 0 :(得分:0)

第一个exec set foreign_key_checks = 0;
执行你的查询
再次设置foreign_key_checks = 1;

答案 1 :(得分:0)

但是,在使用API​​以编程方式添加用户和角色时,需要确保数据库已具有应用程序服务所需的数据库架构。幸运的是,这很容易做到。在示例应用程序中,您可以找到如下所示的代码:

http://imar.spaanjaars.com/563/using-entity-framework-code-first-and-aspnet-membership-together