Gdy programuję przy użyciu LINQ z plikiem .dbml, istnieje tylko jeden kontekst. Ale kiedy robię stronę MVC, wydaje mi się, że mam oddzielne konteksty dla każdej jednostki (w ten sposób samouczek MVC pokazał mi, jak to zrobić, z kontekstem "filmów").Dlaczego wiele klas DbContext?
mam:
public class AccountsContext : DbContext
{
public AccountsContext()
: base("DefaultConnection")
{
}
public DbSet<Account> Accounts { get; set; }
}
I mam:
public class ClientsContext : DbContext
{
public ClientsContext()
: base("DefaultConnection")
{
}
public DbSet<Client> Clients { get; set; }
}
Kiedy wzywam tych, muszę utworzyć oddzielne konteksty, jak:
private AccountsContext db = new AccountsContext();
private ClientsContext clientsContext = new ClientsContext();
... Co jest denerwujące i wydaje się zbędne, ponieważ wiem, że kiedy używam LINQ, muszę tylko utworzyć instancję pojedynczego obiektu bazy danych.
Czy istnieje sposób na użycie tylko jednego kontekstu i czy jest to zalecane?
Przykładowy film MVC specjalnie i celowo wykorzystuje więcej niż jeden kontekst. http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-model. Dlaczego, nie wiem. Może po prostu zilustrować, że jest to możliwe. Może to być pożądane zadanie w przypadku bardzo dużych aplikacji; możesz utworzyć Kontekst dla każdego działu korporacji lub każdej fizycznej bazy danych. –
Czy wiesz, czy był jakiś dobry powód? Może więc PO myśli, że tak musi być zrobione, z tego powodu? –
To byłby mój domysł. –