如何引用多个DAL中的公共数据表

时间:2015-08-26 14:14:32

标签: entity-framework asp.net-identity data-access-layer

我正在构建一个使用最新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以供参考是否明智,或者是否有更好/更清晰的方式来实现我的需求?

0 个答案:

没有答案