Tôi có một dự án ASP.net (C#) đang sử dụng kiến trúc ba lớp. Tôi bắt đầu sử dụng Entity Framework trong DAL của tôi và câu hỏi đặt ra là các lớp mức độ được tạo ra bởi Entity Framework có thể được sử dụng trong Lớp logic nghiệp vụ như thế nào? Bạn nên sử dụng chúng trực tiếp hoặc tôi có nên tạo các đối tượng kinh doanh của riêng mình và ánh xạ chúng từ Entity Framework (db-> O/RM-> BOs) hay không? Không.Sử dụng các khung Entity Framework được tạo ra trong lớp logic nghiệp vụ
Trả lời
Theo tôi, đối tượng EF sẽ được ánh xạ tới bạn. Điều này có chi phí phát triển cao hơn, nhưng mang lại lợi ích bổ sung cho sự thiếu hiểu biết và tách rời dai dẳng. Sự tách rời này có thể chuyển thành sự nhanh nhẹn đáng kể và tiết kiệm thực tế trong thời gian dài, nếu doanh nghiệp cần chuyển sang một giải pháp kiên trì khác. Nếu không có sự tách rời, các đối tượng EF có thể trở nên nhúng sâu trong BLL và thậm chí cả các lớp trình bày, đòi hỏi phải tái cấu trúc lại rất lớn. Trong trường hợp này, doanh nghiệp có thể thậm chí không cân nhắc chuyển đổi các giải pháp kiên trì, điều này có thể khiến doanh nghiệp ít cạnh tranh hơn.
Quyết định gặt hái lợi ích này với chi phí phát triển cao hơn tùy thuộc vào số lượng rủi ro mà doanh nghiệp sẵn sàng thực hiện. Tôi đề nghị bạn tham khảo ý kiến của các ủy viên dự án và sử dụng phán quyết tốt nhất của bạn để diễn giải các mục tiêu chiến lược của họ một cách kỹ thuật.
Cần đủ hợp lý để sử dụng các lớp được tạo làm Đối tượng kinh doanh của bạn. Các lớp được tạo ra là một phần để bạn có thể dễ dàng mở rộng chúng như bạn muốn. Đôi khi tôi tìm thấy nó một lựa chọn đẹp hơn tuy nhiên để sử dụng giao diện.
Tôi vừa mới bắt đầu trên EF 2.0 (trong .Net 4.0 beta 2) và có cơ sở sử dụng các bản sao POCO làm thực thể EF. Bây giờ bạn có thể sử dụng các lớp không biết dè dặt trong EF 2.
Tôi nghĩ rằng điều này chưa hoàn toàn sẵn sàng, vì tôi không thể theo dõi bản trình bày từ PDC 2009 khi làm việc trong Visual Studio 2010 beta 2 nhưng hãy theo dõi điều này tại ADO.Net team blog.
Bạn có thể muốn xem Persistence Ignorance (POCO) Adapter for Entity Framework. Đây là một dự án mã nguồn mở từ một thành viên của nhóm EF mang lại sự hỗ trợ của POCO cho EF 1.0. EF 4.0 sẽ có hỗ trợ POCO out-of-the-box, nhưng dự án này phục vụ như là một biện pháp ngăn chặn khoảng cách cho đến khi .NET 4.0 giảm xuống vào năm 2010.
- 1. Trong lớp truy cập dữ liệu và logic nghiệp vụ riêng biệt, tôi có thể sử dụng các lớp khung thực thể trong lớp nghiệp vụ không?
- 2. Nơi đặt logic nghiệp vụ trong DDD
- 3. Logic nghiệp vụ trong MVC
- 4. Nơi đặt logic nghiệp vụ trong Symfony2?
- 5. Có bao nhiêu logic nghiệp vụ thuộc lớp dịch vụ RIA?
- 6. Cách chia sẻ logic nghiệp vụ giữa nhiều ứng dụng
- 7. Entity Framework Xác nhận & sử dụng
- 8. Entity Framework: ObjectContext.ExecuteStoreQuery tạo ra các đối tượng tách rời
- 9. Tách trình bày và logic nghiệp vụ trong PHP
- 10. Liệu logic nghiệp vụ có chủ quan?
- 11. Sử dụng System.ComponentModel.DataAnnotations with Entity Framework 4.0
- 12. Giao diện người dùng, Lớp logic nghiệp vụ, Lớp dữ liệu và vị trí đặt các dịch vụ web
- 13. miền hướng thiết kế sử dụng Entity framework 4
- 14. Sử dụng cột DateTime được tính toán trong Entity Framework
- 15. Bất kỳ dự án mẫu C# nào làm nổi bật lớp truy cập dữ liệu riêng lẻ (sử dụng EF) cho lớp logic nghiệp vụ
- 16. Làm cách nào để thêm các chú thích XML vào các lớp được tạo tự động do Entity Framework tạo ra khi sử dụng phương pháp Model-First?
- 17. Entity Framework Các thực thể POCO trong ứng dụng web đa lớp
- 18. MVC/MVP/MVVM - Cách sắp xếp logic nghiệp vụ
- 19. Chúng ta nên có gì trong một lớp logic nghiệp vụ (BLL)
- 20. Lớp nghiệp vụ so với SQL Server
- 21. Cách tránh mô hình miền thiếu máu có logic nghiệp vụ theo dạng quy tắc
- 22. tạo ra một vector logic từ khung dữ liệu
- 23. Tôi có nên sử dụng các lớp học một phần làm lớp nghiệp vụ khi sử dụng khung thực thể không?
- 24. Tách Mối quan tâm Pattern Repository & Entity Framework 3.5
- 25. Entity Framework - Tái sử dụng Complex Loại
- 26. Tham số đầu ra với Entity Framework
- 27. MetadataException khi sử dụng Entity Framework Entity kết nối
- 28. Lớp lưu trữ cục bộ cho Entity Framework?
- 29. Làm cách nào hiệu quả nhất để ánh xạ các quy tắc/logic nghiệp vụ?
- 30. Đặt giá trị mặc định - logic trình bày hoặc logic nghiệp vụ?
Các lớp học tạo ra EF được thiết kế để mở rộng và được sử dụng làm đối tượng kinh doanh . Nếu bạn không thích nó, bạn nên thay đổi orm hoặc chờ mã chỉ EF 4. Thêm các đối tượng bổ sung chỉ không cảm thấy đúng. DB đầu tiên, sau đó là các lớp ORM, sau đó là BO, sau đó xem các mô hình. Dường như nhiều. – LukLed