VS2013, mã EF6 trước, MVC, (VB)Ưu và nhược điểm của việc sử dụng một hoặc nhiều DbContext với EF là gì?
Tôi muốn hiểu rõ hơn về ưu và nhược điểm của việc sử dụng ngữ cảnh đơn lẻ hoặc chia DbSets thành nhiều ngữ cảnh. Tôi đã đọc qua một số bài viết SO cũ trên nhiều DbContexts và không thực sự tìm thấy những gì tôi đang tìm kiếm; một tuyên bố toàn diện về thời gian và địa điểm sử dụng hoặc không sử dụng nhiều DbContexts.
Trong trường hợp một người dùng đang chạy một chương trình như Windows Forms trên phần cứng của riêng họ, có vẻ như không có lý do gì để có nhiều bối cảnh dễ làm việc với mã.
Trong trường hợp ứng dụng web chạy chương trình kinh doanh chính cho nhiều doanh nghiệp, có vẻ như nhiều DbContexts là điều cần thiết cho bảo mật và quản trị.
Nhưng tôi muốn nhận được xác nhận nếu tôi đang suy nghĩ về câu hỏi này một cách chính xác. Tất cả tôi có thể nghĩ đến là sau đây, nhưng sau đó tôi là khá mới với môi trường này:
Ưu điểm của một bối cảnh duy nhất:
- chỉ Mã hóa có một bối cảnh duy nhất để đối phó với
- (có vấn đề với các mối quan hệ giữa bối cảnh?)
- Migrations là dễ dàng hơn vì chỉ có một thư mục di cư và quá trình
- dễ dàng hơn để có được một d toàn diện iagram xây dựng trong SSMS hoặc EDMX
- (Link here để nhận sơ đồ EDMX khi sử dụng mã đầu tiên)
Nhược điểm của một bối cảnh duy nhất:
- an ninh có thể là một vấn đề đối với nhiều web khách hàng trên ứng dụng doanh nghiệp
- (Đây có phải là vấn đề cho các trang web đơn giản có tư cách thành viên đơn giản không?)
- Một số SO bài viết dường như cho thấy thời gian đáp ứng là một vấn đề
- (cơ chế này là gì đây?)
Đó là tất cả tôi có. Tôi không biết đủ để hiểu đầy đủ về hai mặt, và đưa ra các môi trường khác nhau mà chúng ta có thể làm việc, dường như câu trả lời cho một hoặc nhiều bối cảnh sẽ khác nhau.
Tôi hiện đang làm việc trên một trang web sẽ có tư cách thành viên và cũng là ứng dụng có thể tải xuống sẽ là ứng dụng cá nhân chạy trên phần cứng của người dùng. Trong trường hợp này, tôi nghĩ rằng một bối cảnh duy nhất cho cả hai có ý nghĩa, nhưng trước khi tôi nhận được quá sâu vào nó, tôi mặc dù tôi sẽ yêu cầu một số cuộc thảo luận về điều này. Tôi cho rằng những người khác có phần mới với môi trường sẽ tiếp tục có cùng câu hỏi.Tôi cũng lưu ý rằng Microsoft thấy phù hợp để bổ sung nhiều khả năng ngữ cảnh cho EF trong EF6 và cao hơn, vì vậy rõ ràng phải có một số môi trường lập trình đưa ra lý do thuyết phục để có nhiều bối cảnh.
Cảm ơn bạn đã nhập.
Best Regards, Alan
MS đã thêm nhiều bối cảnh chủ yếu vì ngữ cảnh lớn có vấn đề về hiệu suất. phá vỡ chúng làm giảm những vấn đề này. –
Một thời gian ngắn, tôi muốn nói rằng, nhiều DbContexts rất hữu ích khi bạn muốn chia miền của bạn thành các phần riêng biệt và stear vòng đời của chúng một cách độc lập thông qua vòng đời dự án. Tôi khuyên bạn nên đọc về Phát triển dựa trên tên miền (http://msdn.microsoft.com/en-us/magazine/dn342868.aspx và http://msdn.microsoft.com/pl-pl/magazine/jj883952(en- chúng tôi) .aspx) của Julie Lerman nếu bạn muốn đào deepper trong chủ đề này. – Fka
Các liên kết tuyệt vời, cảm ơn. Tôi đã học DDD ở trường, nhưng nó khác khi bạn làm điều đó thật, và những bài báo đó dường như tập trung hơn một chút cho tôi ngay bây giờ. @Erik - nhận được nó trên các bối cảnh lớn; Tôi khá chắc chắn rằng đó sẽ không phải là vấn đề của tôi trong một thời gian, nhưng tôi đánh giá cao sự hiểu biết tại sao họ tạo ra nhiều khả năng bối cảnh. – Alan