Quando si programma utilizzando LINQ con un file .dbml, esiste un solo contesto. Ma quando faccio un sito MVC, sembra di avere contesti separati per ogni entità (che è il modo in cui il tutorial MVC mi ha mostrato come farlo, con il contesto "film").Perché più classi DbContext?
ho:
public class AccountsContext : DbContext
{
public AccountsContext()
: base("DefaultConnection")
{
}
public DbSet<Account> Accounts { get; set; }
}
E, devo:
public class ClientsContext : DbContext
{
public ClientsContext()
: base("DefaultConnection")
{
}
public DbSet<Client> Clients { get; set; }
}
Quando chiamo questi, devo creare contesti separati, come:
private AccountsContext db = new AccountsContext();
private ClientsContext clientsContext = new ClientsContext();
... Il che è al tempo stesso fastidioso, e sembra ridondante poiché so che quando uso LINQ, devo solo istanziare un singolo oggetto di database.
C'è un modo per utilizzare solo un contesto? E questo è raccomandato?
L'esempio MVC Movies utilizza specificamente e deliberatamente più di un contesto. http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-model. Perché, non lo so. Forse solo per illustrare che è possibile farlo. Potrebbe essere una cosa desiderabile da fare per applicazioni molto grandi; è possibile creare un contesto per ciascun dipartimento di una società, o forse ogni database fisico. –
Sai se c'era una buona ragione per quello? Quindi forse l'OP sta pensando che debba essere fatto in quel modo, a causa di quell'esempio? –
Questa sarebbe la mia ipotesi. –