如何读取 dbo.AspNetUsers 表?

Sti*_*ian 3 c# entity-framework-core asp.net-core-mvc asp.net-core-identity

我想从 Identity-table 检索数据dbo.AspNetUsers,但我还没有弄清楚如何查询它。

这是我的数据库上下文:

public class ProjectsDbContext : IdentityDbContext<IdentityUser>
{
    public ProjectsDbContext(DbContextOptions<ProjectsDbContext> options) : base(options) { }

    public DbSet<Project> Projects { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        if (modelBuilder == null)
        {
            throw new NullReferenceException();
        }

        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<Project>()
            .HasMany(c => c.ChildProjects)
            .WithOne(p => p.ParentProject)
            .HasForeignKey(p => p.ParentProjectId);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的User班级:

public class User : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的查询,但不起作用:

List<User> projectOwners = await db.Users.ToListAsync();
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是:

无法将类型“System.Collections.Generic.List<Microsoft.AspNetCore.Identity.IdentityUser>”隐式转换为“System.Collections.Generic.List<Projects.Models.User>”

如果我在查询中替换List<User>为,错误就会消失,但我得到的集合不包含我自己的类中的任何属性。varUser

如何访问AspNetUsers,包括我自己在 中定义的额外属性User

Pet*_*err 5

使用 EF Core,表 AspNetUsers 映射到 Users DbSet,因此您可以通过以下方式轻松引用它

db.Users
Run Code Online (Sandbox Code Playgroud)

IdentityUser如果您自定义 AspNetTable,添加您自己的字段,例如 FirstName、LastName,那么您需要根据 @timur 的答案派生,但您仍然应该能够引用该表db.Users