Ale*_*ksa 0 c# entity-framework-core
想象一下,有2个DbContext:
DbContextA {
DbSet<Person> Persons { get; set; }
}
DbContextB {
DbSet<Group> Groups{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,实体中是否可能Person具有如下导航属性Group:
class Person {
public int GroupId { get; set; }
public Group Group { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个将一个DbContext划分为多个具有单独实体的DbContext的请求,但是在进入之前,我想知道导航属性是否可以在上下文之间工作,所以我不需要更改查询,因为我在诸如之类的查询中使用了导航属性persons.Where( p => p.Group.Name == "GroupName")。
不行,不可能 EF十分遵守DDD(域驱动设计)。上下文是您的工作单元,但是它被称为“上下文”,因为它是实现DDD中“绑定上下文”概念的类。换句话说,您的应用程序的每个子域都应具有一个上下文,并且该上下文应完全封装该子域。在两个上下文之间交叉表示您没有正确细分您的域。
如果两个实体确实属于同一子域,则它们应该存在于相同的上下文中。如果不是这样,那么无论如何都不能引用另一个。