【发布时间】:2019-10-23 22:16:31
【问题描述】:
假设有 2 个 DbContext:
DbContextA {
DbSet<Person> Persons { get; set; }
}
DbContextB {
DbSet<Group> Groups{ get; set; }
}
在这种情况下,实体Person 中是否可以像这样拥有Group 的导航属性:
class Person {
public int GroupId { get; set; }
public Group Group { get; set; }
}
我有一个请求将一个 DbContext 划分为具有单独实体的多个 DbContext,但在进入之前,我想知道导航属性是否可以在上下文之间工作,所以我不需要更改查询,因为我在查询中使用导航属性,例如persons.Where( p => p.Group.Name == "GroupName").
【问题讨论】:
-
您不能在上下文之间添加关系。上下文表示一个独立模型,其工作是为特定的业务场景提供服务。为什么要使用 two 上下文?你想用这个来达到什么目的?为什么要“划分”上下文?是否有一个庞大的上下文试图服务于多种场景,直到变得笨拙?