C# Simplemembership网页\用户角色代码第一个FK错误

C# Simplemembership网页\用户角色代码第一个FK错误,c#,asp.net,asp.net-mvc,entity-framework,C#,Asp.net,Asp.net Mvc,Entity Framework,我正在尝试实现SimpleMembership实体,以便控制它的某些方面,以下是我创建的类: [Table("webpages_Roles")] public class Role { public Role() { UsersInRoles = new List<UsersInRole>(); } [Key] public int RoleId { get; set; } [StringLength(256)]

我正在尝试实现SimpleMembership实体,以便控制它的某些方面,以下是我创建的类:

 [Table("webpages_Roles")]
 public class Role
{
    public Role()
    {
        UsersInRoles = new List<UsersInRole>();
    }

    [Key]
    public int RoleId { get; set; }
    [StringLength(256)]
    public string RoleName { get; set; }

    //public ICollection<Membership> Members { get; set; }

    [ForeignKey("RoleId")]
    public ICollection<UsersInRole> UsersInRoles { get; set; }
}
[Table("webpages_UsersInRoles")]
public class UsersInRole
{
    [Key, Column(Order = 0)]
    public int RoleId { get; set; }

    [Key, Column(Order = 1)]
    public int UserId { get; set; }

    [Column("RoleId"), InverseProperty("UsersInRoles")]
    public Role Roles { get; set; }

    [Column("UserId"), InverseProperty("UsersInRoles")]
    public Membership Members { get; set; }



}
 [Table("webpages_Membership")]
public class Membership
{
    public Membership()
    {
        //Roles = new List<Role>();
        OAuthMemberships = new List<OAuthMembership>();
        UsersInRoles = new List<UsersInRole>();
    }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }
    public DateTime? CreateDate { get; set; }
    [StringLength(128)]
    public string ConfirmationToken { get; set; }
    public bool? IsConfirmed { get; set; }
    public DateTime? LastPasswordFailureDate { get; set; }
    public int PasswordFailuresSinceLastSuccess { get; set; }
    [Required, StringLength(128)]
    public string Password { get; set; }
    public DateTime? PasswordChangedDate { get; set; }
    [Required, StringLength(128)]
    public string PasswordSalt { get; set; }
    [StringLength(128)]
    public string PasswordVerificationToken { get; set; }
    public DateTime? PasswordVerificationTokenExpirationDate { get; set; }
    //public ICollection<Role> Roles { get; set; }

    [ForeignKey("UserId")]
    public ICollection<OAuthMembership> OAuthMemberships { get; set; }

    [ForeignKey("UserId")]
    public ICollection<UsersInRole> UsersInRoles { get; set; }
}

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public bool Status { get; set; }
    public string EmailId { get; set; }
}
[表格(“网页\角色”)]
公共阶级角色
{
公共角色()
{
UsersInRoles=新列表();
}
[关键]
public int RoleId{get;set;}
[StringLength(256)]
公共字符串RoleName{get;set;}
//公共ICollection成员{get;set;}
[外国钥匙(“RoleId”)]
公共ICollection用户角色{get;set;}
}
[表格(“网页\用户角色”)]
公共类用户角色
{
[键,列(顺序=0)]
public int RoleId{get;set;}
[键,列(顺序=1)]
public int UserId{get;set;}
[列(“RoleId”),反向属性(“UsersInRoles”)]
公共角色{get;set;}
[列(“用户ID”)、反向属性(“用户角色”)]
公共成员身份成员{get;set;}
}
[表格(“网页/会员”)]
公共班级成员资格
{
公众会员资格()
{
//角色=新列表();
OAuthMemberships=新列表();
UsersInRoles=新列表();
}
[Key,DatabaseGenerated(DatabaseGeneratedOption.None)]
public int UserId{get;set;}
公共日期时间?CreateDate{get;set;}
[第128段]
公共字符串确认令牌{get;set;}
公共bool?已确认{get;set;}
公共日期时间?LastPasswordFailureDate{get;set;}
public int passwordfailuressincelastsucture{get;set;}
[必需,字符串长度(128)]
公共字符串密码{get;set;}
公共日期时间?PasswordChangedDate{get;set;}
[必需,字符串长度(128)]
公共字符串密码salt{get;set;}
[第128段]
公共字符串PasswordVerificationToken{get;set;}
公共日期时间?PasswordVerificationTokenExpirationDate{get;set;}
//公共ICollection角色{get;set;}
[外键(“用户ID”)]
公共ICollection OAuthMemberships{get;set;}
[外键(“用户ID”)]
公共ICollection用户角色{get;set;}
}
[表(“用户档案”)]
公共类用户配置文件
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId{get;set;}
公共字符串用户名{get;set;}
公共布尔状态{get;set;}
公共字符串EmailId{get;set;}
}
现在,只要我尝试插入一个新用户,它就会正确地插入到userProfile和webpages\u Membership表中,但只要应用程序尝试将角色分配给该用户,就会引发异常

*INSERT语句与外键约束“FK_dbo.webpages_UsersInRoles_dbo.webpages_Membership_UserId”冲突。冲突发生在数据库“PCSPI”、表“dbo.webpages_Membership”、列“UserId”中。 声明已终止*

我尝试使用sql server手动插入它,但一旦我尝试在应用程序上插入它,就会引发异常

我做错了什么?这个模型不是定义得很好吗?
提前感谢

您没有阅读评论。我想你是从以下方面得到这个模式的:

下面的一条评论说,这个模式是不正确的,并且给出了正确的模式,在我使用它时,defo可以工作。我不想在这里重复。前往上述地点并再次检查。(塞纳德·卡里克评论)


另外,别担心,我在第一次使用它时也是这样做的:)

链接似乎已断开。我已与该页面的作者联系,不幸的是,内容丢失,备份丢失。这意味着,整个问题应该删除,因为它是由现在删除的文章中的错误引起的。