6

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

5

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.

+2

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

2

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.

1

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.

0

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.

Các vấn đề liên quan