我已阅读并看过几个关于拆分或多个DbContext的项目,我不确定什么是最佳实践..我应该为每个实体创建每个DbContext还是在一个DbContext中包含所有实体?
这就是我现在所拥有的。
public class PersonsContext : DbContext
{
public PersonsContext() : base("name=EmployeeContext")
{
}
public DbSet<Person> People { get; set; }
}
public class OrderContext : DbContext
{
public OrderContext() : base("name=EmployeeContext")
{
}
public DbSet<Order> People { get; set; }
}
答案 0 :(得分:2)
实际上,您不需要为每个实体创建一个DbContext。但是,您可以为单个数据库使用多个DbContext。举个例子,假设你想将应用程序的业务方面和安全方面分成两个不同的模块。当然,您可以有两个不同的上下文,例如SecurityContext,其中所有与Security相关的实体和BusinessContext都包含与业务相关的实体。 例如:
public class SecurityContext : DbContext{
public PersonsContext() : base("name=securitycontext"){
}
public DbSet<User> User { get; set; }
public DbSet<Role> Role { get; set; }
public DbSet<Group> Group { get; set; }
}
public class BusinessContext : DbContext{
public OrderContext() : base("name=businesscontext"){
}
public DbSet<Order> Order { get; set; }
public DbSet<OrderLine> OrderLine { get; set; }
public DbSet<Customer> Customer { get; set; }
}