我正在构建一个使用最新ASP.NET Identity 2.1代码的MVC网站。我的实现按照惯例使用Entity Framework作为后端数据存储。
在结构上和分离关注点时,我想将其保留为单独的DAL /服务。我的身份数据上下文非常简单;它只是将自定义UserDetails数据集添加到基本IdentityDbContext<>
public class IdentityDbContext:IdentityDbContext { #region DataSet public DbSet UserDetails {get;组; } #endregion DataSet
#region CTORs
public IdentityDbContext()
: base("AspNetIdentityConnectionString", throwIfV1Schema: false)
{
}
static IdentityDbContext()
{
Database.SetInitializer<IdentityDbContext>(null);
}
public static IdentityDbContext Create()
{
return new IdentityDbContext();
}
#endregion CTORs
#region OnModelCreating
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new ApplicationUserDetailsMap());
}
#endregion OnModelCreating
}
所有这些都按照要求/预期工作。
我的应用程序还定义了另一个数据上下文(再次基于实体框架),它实现了Generic Unit of Work and Repositories Framework (URF),我发现它非常强大和有用。出于讨论目的,我将此数据上下文称为ApplicationDataContext
我遇到的问题是ApplicationDataContext中的某些类与IdentityDataContext中的数据有关系。例如,ApplicationDataContext中的Message对象可能是拥有的&#39;通过在IdentityDataContext中定义和管理的ApplicationUser。
简单地将相关的身份数据集添加到ApplicationDataContext以供参考是否明智,或者是否有更好/更清晰的方式来实现我的需求?