如何在两个不同的DbContext中添加表之间的关系

时间:2016-09-19 09:02:41

标签: entity-framework

我有两个DbContext类和一些实体。我知道拥有多个DbContext并不是一个好主意,但我必须做很多工作来改变我的代码!所以我的问题是在两个具有不同DbContext的实体之间添加关系的最佳方案是什么?

例如,用户实体与IdentityDb上下文和注释实体与SiteDbContext之间的一对多关系:

public class User : IdentityUser
{
    public DateTime JoinDate { get; set; }
    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        var userIdentity = await  manager.CreateIdentityAsync(this,DefaultAuthenticationTypes.ApplicationCookie);
        return userIdentity;
    }
}
public class IdentityDb : IdentityDbContext<ApplicationUser>
{
    public IdentityDb() : base("DefaultConnection", throwIfV1Schema: false)
    {
    }
    public static IdentityDb Create()
    {
        return new IdentityDb();
    }
}
public class Comment
{
    public int CommentId { get; set; }

    [Required]
    [StringLength(900)]
    public string CommentText { get; set; }

    [DataType(DataType.Date)]
    public DateTime CommentDate { get; set; }
}
public class SiteDb: DbContext
{
    public SiteDb(): base("DefaultConnection")
    {
    }
    public DbSet<Comment> Comments{ get; set; }
}

1 个答案:

答案 0 :(得分:1)

简答:实体框架目前不支持创建使用多个上下文的查询。

对于解决方法:请参阅this