Entity framework asp.net实体框架mvc中的身份框架不允许我注册用户!为什么?
嗨,我试着制作自己的表来表示mvc4中标识的简单成员身份,并使用与它们相同的安全性 看看我做了什么:用礼节重现所有桌子:Entity framework asp.net实体框架mvc中的身份框架不允许我注册用户!为什么?,entity-framework,asp.net-mvc-4,asp.net-identity,Entity Framework,Asp.net Mvc 4,Asp.net Identity,嗨,我试着制作自己的表来表示mvc4中标识的简单成员身份,并使用与它们相同的安全性 看看我做了什么:用礼节重现所有桌子: public class UsersContext : DbContext { public UsersContext() : base("DefaultConnection") { } public DbSet<UserProfile> UserProfiles { get; set; } public D
public class UsersContext : DbContext
{
public UsersContext()
: base("DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<Membership> Memberships { get; set; }
public DbSet<OAuthMembership> OAuthMemberships { get; set; }
public DbSet<Role> Roles { get; set; }
}
[Table("webpages_Membership")]
public class Membership
{
public Membership()
{
}
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MemberShipId { 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 UserProfile UserId { get; set; }
}
[Table("webpages_OAuthMembership")]
public class OAuthMembership
{
[Key, Column(Order = 0), StringLength(30)]
public string Provider { get; set; }
[Key, Column(Order = 1), StringLength(100)]
public string ProviderUserId { get; set; }
public UserProfile UserId { get; set; }
}
[Table("webpages_Roles")]
public class Role
{
public Role()
{
}
[Key]
public int RoleId { get; set; }
[StringLength(256)]
public string RoleName { get; set; }
public ICollection<UserProfile> UserId { get; set; }
}
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public ICollection<Role> RoleId { get; set; }
}
}
public类用户上下文:DbContext
{
公共用户上下文()
:base(“默认连接”)
{
}
公共数据库集用户配置文件{get;set;}
公共数据库集成员身份{get;set;}
公共DbSet OAuthMemberships{get;set;}
公共数据库集角色{get;set;}
}
[表格(“网页/会员”)]
公共班级成员资格
{
公众会员资格()
{
}
[Key,DatabaseGenerated(DatabaseGeneratedOption.None)]
public int MemberShipId{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;}
公共用户配置文件用户标识{get;set;}
}
[表(“网页”\u OAuthMembership”)]
公共级成员船
{
[键,列(顺序=0),字符串长度(30)]
公共字符串提供程序{get;set;}
[键,列(顺序=1),字符串长度(100)]
公共字符串ProviderUserId{get;set;}
公共用户配置文件用户标识{get;set;}
}
[表格(“网页和角色”)]
公共阶级角色
{
公共角色()
{
}
[关键]
public int RoleId{get;set;}
[StringLength(256)]
公共字符串RoleName{get;set;}
公共ICollection用户标识{get;set;}
}
[表(“用户档案”)]
公共类用户配置文件
{
[关键]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId{get;set;}
公共字符串用户名{get;set;}
公共ICollection RoleId{get;set;}
}
}
所有表格都创建好了,一切都很好。。。。但是当我运行程序并试图注册它时,我犯了一个错误!它显示的列名“UserId”无效。当我点击注册按钮时。。。当我看到以前的情况有什么不对劲的时候。。。。它说websecurity.hasUserId=fasle。。。。我想知道问题出在哪里,但我不知道是什么导致了问题。。。。如果可以的话,谢谢你的帮助D
最奇怪的是,用户还是被创建的。。。。。但不是会员和每一件事 应该
public-UserProfile-UserId{get;set;}
bepublic-virtual-UserProfile-UserId{get;set;}
因为它是一个导航属性?是的,我想你是对的,但我怀疑它有问题,但我可以尝试:Pwell它将是一个问题,因为它没有标记为虚拟的,所以它将尝试在网页\u成员资格表中为它创建一列