1

Я прочитал и увидел несколько проектов, которые говорят о сплите или множественном DbContext, и я не уверен, что является лучшей практикой. Должен ли я создавать каждый DbContext для каждого объекта или иметь все сущность в одном DbContext?Разделение нескольких DbContexts

Это то, что у меня есть сейчас.

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

контроль этот ответ http://stackoverflow.com/questions/21341636/how-can-i-tell-the-web-api-castle-windsor-routing-engine-to-use- а-разные-да/21355365 # 21355365 – Ehsan

ответ

1

На самом деле вам не нужно создавать один DbContext для каждого объекта. Но вы можете иметь несколько DbContext для одной базы данных. Например, предположим, что вы хотите разделить свой бизнес-аспект и аспект безопасности приложения на два разных модуля. Тогда, конечно, у вас может быть два разных контекста, таких как SecurityContext, который имеет все сущности, связанные с Security и BusinessContext, из объектов, связанных с бизнесом. Ex:

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; } 
} 
Смежные вопросы