我正在尝试在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
出现以下异常:
无法添加或更新子行:外键约束失败(
ticket
。webpages_usersinroles
,CONSTRAINTfk_RoleId
FOREIGN KEY(RoleId
)参考webpages_roles
(RoleId
))
用户已添加到表格userprofile
(和webpages_membership
),并且角色已添加到webpages_roles
。 webpages_usersinroles
仍然是空的。由于一个神秘的原因,MySQL无法引用该角色。我该如何解决这个问题?
提前致谢!
答案 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