Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架6标识用户代码首次发布_C#_Entity Framework_Identity_Asp.net Identity - Fatal编程技术网

C# 实体框架6标识用户代码首次发布

C# 实体框架6标识用户代码首次发布,c#,entity-framework,identity,asp.net-identity,C#,Entity Framework,Identity,Asp.net Identity,我是EF的新手,所以这给我带来了很多问题 我偷看了EF附带的IdentityUser的代码,看起来是这样的: public class IdentityUser : IUser { public IdentityUser(); public IdentityUser(string userName); public virtual ICollection<IdentityUserClaim> Claims { get; } public virtua

我是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; }
}
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是该模型的关键。我试图将登录提供者用户ID映射为密钥,但现在当我尝试登录时,却找不到该用户

肯定有人遇到了这个问题并解决了它。 如果有,你能告诉我正确的方向吗

干杯


/r3plica

用户和IdentityUserLogin之间的关系应为设计的一对多关系。这只保存了OAuth登录到各种提供商(如Google和Facebook)的信息。一个用户可以有多个这样的帐户,他们可以选择使用这些帐户进行登录。IdentityUserLogin的键实际上是UserId、LoginProvider和ProviderKey的组合。您在数据库中到底要映射到什么,为什么要映射到IdentityUserLogin而不是从IdentityUser派生的用户对象?问题是我已经拥有了数据库。我试图使用EF创建一个干净的数据库来查看表结构,但正如我所说的,它创建了以UserId为键的表,然后添加了另一个名为User_Id的列作为FK。这显然是错误的,所以它对我现有的数据库没有帮助。现在您已经告诉我这是三者的组合,我可以为其创建映射并进行测试。如果它起作用,那就太酷了:)