问题描述
首先:ASP.NET 身份上下文。
public class IdentityContext : IdentityDbContext<IdentityAppUser>
{
public IdentityContext(DbContextOptions options)
: base(options)
{
}
}
身份用户。
public class IdentityAppUser : IdentityUser
{
}
第二:DatabaseContext。
public sealed class DatabaseContext : DbContext
{
public DatabaseContext(DbContextOptions<DatabaseContext> options)
: base(options)
{
}
public DbSet<User> Users { get; set; }
}
public class User : BaseEntity
{
public string IdentityId { get; set; }
}
我正在使用 CQRS。我想返回完整的用户数据(身份信息 + 域模型信息)。所以我正在考虑实施。
哪种方法更好?
解决方法
我认为这个问题最终与从同一数据库返回两个查询的结果非常相似。结果需要在某处合并。有时是存储库,有时是服务层,有时是客户端代码对后端进行两次调用以创建单个页面。
在何处合并数据没有普遍的正确响应。有时可能很清楚(来自两个相关表的数据 => 在 SQL 中执行),有时则不太清楚。
请记住,整个解决方案中可能会使用实体(在本例中为用户)的多个视图,并且这些视图可能与应用程序不同层中的其他数据相结合。