我是EF的新手,所以这给我带来了很多问题。
我偷看了EF附带的IdentityUser的代码,它看起来像这样:
public class IdentityUser : IUser
{
public IdentityUser();
public IdentityUser(string userName);
public virtual ICollection<IdentityUserClaim> Claims { get; }
public virtual string Id { get; set; }
public virtual ICollection<IdentityUserLogin> Logins { get; }
public virtual string PasswordHash { get; set; }
public virtual ICollection<IdentityUserRole> Roles { get; }
public virtual string SecurityStamp { get; set; }
public virtual string UserName { get; set; }
}
我无法改变它,就是这样。 我的问题是我确定(100%)用户应与 IdentityUserLogin 建立一对一的关系,但此模型显示了一个集合......
这导致我无法解决问题,因为我根本无法将其映射到我的数据库。 IdentityUserLogin 模型如下所示:
public class IdentityUserLogin
{
public IdentityUserLogin();
public virtual string LoginProvider { get; set; }
public virtual string ProviderKey { get; set; }
public virtual IdentityUser User { get; set; }
public virtual string UserId { get; set; }
}
您可以看到意味着预期存在多对一关系,但 LoginProvider 是此模型的关键。我尝试将 LoginProvider 和 UserId 映射为关键字,但现在当我尝试登录时,却找不到用户。
当然有人遇到过这个问题并且已经解决了。 如果有的话,你能指出我正确的方向吗?
干杯,
/ r3plica