Khi tôi lập trình bằng LINQ với tệp .dbml, chỉ có một ngữ cảnh. Nhưng, khi tôi làm một trang MVC, có vẻ như tôi có những ngữ cảnh riêng biệt cho mỗi thực thể (đó là cách mà hướng dẫn MVC chỉ cho tôi cách thực hiện nó, với ngữ cảnh "phim").Tại sao có nhiều lớp DbContext?
tôi có:
public class AccountsContext : DbContext
{
public AccountsContext()
: base("DefaultConnection")
{
}
public DbSet<Account> Accounts { get; set; }
}
Và, tôi có:
public class ClientsContext : DbContext
{
public ClientsContext()
: base("DefaultConnection")
{
}
public DbSet<Client> Clients { get; set; }
}
Khi tôi gọi này, tôi phải tạo ra bối cảnh riêng biệt, như:
private AccountsContext db = new AccountsContext();
private ClientsContext clientsContext = new ClientsContext();
... Đó là cả hai gây phiền nhiễu, và nó có vẻ dư thừa kể từ khi tôi biết rằng khi tôi sử dụng LINQ, tôi chỉ phải nhanh chóng một đối tượng cơ sở dữ liệu duy nhất.
Có cách nào để chỉ sử dụng một ngữ cảnh và được khuyến nghị này không?
Ví dụ về Phim MVC cụ thể và cố ý sử dụng nhiều ngữ cảnh. http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-model. Tại sao, tôi không biết. Có lẽ chỉ để minh họa rằng nó có thể làm như vậy. Nó có thể là một điều mong muốn để làm cho các ứng dụng rất lớn; bạn có thể tạo một bối cảnh cho mỗi bộ phận của một tập đoàn, hoặc có lẽ mỗi cơ sở dữ liệu vật lý. –
Bạn có biết nếu có lý do chính đáng cho điều đó không? Vì vậy, có lẽ OP đang nghĩ rằng nó phải được thực hiện theo cách đó, bởi vì ví dụ đó? –
Đó sẽ là dự đoán của tôi. –