在我的ASP.NET MVC应用程序中,我定制了Identity以使用另一个表来存储用户的信息,例如名字,姓氏和生日。这是关联代码:
public class ApplicationUser : IdentityUser
{
public virtual UserInfo Info { get; set; }
}
public class UserInfo
{
public int Id { get; set; }
public string FirstName { get; set;
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
但是如何使用ApplicationUser类的主键作为UserInfo的主键,以便您知道这些信息所属的用户帐户?
答案 0 :(得分:0)
ApplicationUser
的主键将是默认类型String
,因此首先您需要更改您的从属类,以使其具有字符串类型的键。
public class UserInfo
{
public string Id { get; set; }
public string FirstName { get; set;
public string LastName { get; set; }
public DateTime BirthDate { get; set; }
}
然后在IdentityDbContext实现中,您需要创建一个映射来创建您之后的1:1关系。
public class MyIdentityDbContext : IdentityDbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ApplicationUser>().HasRequired(x => x.Info).WithRequiredDependent();
base.OnModelCreating(modelBuilder);
}
}
这应该有用