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?
使用 EF Core,表 AspNetUsers 映射到 Users DbSet,因此您可以通过以下方式轻松引用它
db.Users
Run Code Online (Sandbox Code Playgroud)
IdentityUser如果您自定义 AspNetTable,添加您自己的字段,例如 FirstName、LastName,那么您需要根据 @timur 的答案派生,但您仍然应该能够引用该表db.Users
| 归档时间: |
|
| 查看次数: |
6031 次 |
| 最近记录: |