2010-09-01 14 views
8

Tôi đang cố gắng thuyết phục khách hàng sử dụng nhibernate thay vì Entity Framework 4. Khách hàng của tôi đã quyết định chỉ sử dụng các thư viện Microsoft (bao gồm Unity và Enterprise library 5). Tôi không đồng ý với họ (có quá nhiều khung khai thác/lớp xác nhận tốt hơn/ioc vv) nhưng tôn trọng quyết định của họ.Tại sao tôi nên sử dụng nhibernate thay vì khung thực thể 4

Tôi đã chơi với EF4 cho một vài ngày và tôi không thích nó, chủ yếu là do:

  • Trước hết, tất cả các thông báo lỗi là khủng khiếp. Tôi phải dành nhiều thời gian hơn để googling những gì các trường hợp ngoại lệ thực sự có nghĩa là hơn để cố gắng sửa chữa chúng.

  • Chúng tôi sử dụng POCO và có một chút rắc rối để làm cho chúng hoạt động tốt với EF4.

  • Các tệp ánh xạ được sử dụng bởi nhibernate rất dễ làm việc hơn.

Có ai khác có kinh nghiệm với cả hai khuôn khổ và cho tôi thêm lý do tại sao họ không nên sử dụng ef4?

Có bất kỳ công cụ GUI hoặc addins visual studio có thể được sử dụng để tạo ra các file bản đồ/mô hình từ một cơ sở dữ liệu (những thứ như thế luôn giúp)

+4

Sẽ tốt hơn nếu bạn hỏi "Cái nào tốt hơn, EF4 hoặc nHibernate?" Hoặc yêu cầu một tính năng so sánh hoặc một cái gì đó? Bạn đang bắt đầu với một thiên vị mà thường không phải là tuyệt vời. – tster

+0

ngoại trừ trong trường hợp này nó là một thực tế khá chấp nhận rằng EF4 vẫn đang chơi bắt kịp với NH. Điều đó nói rằng nó thực sự nhận được khá hữu dụng. –

+0

. Tôi đã nói những gì tôi thích. Nhưng tôi muốn cung cấp cho khách hàng mục tiêu của tôi chỉ ra lý do tại sao một trong số đó nên được sử dụng. Đối với tôi, ngoại lệ rõ ràng là một vấn đề lớn, nhưng có lẽ EF4 là tốt ở những thứ mà tôi chưa tìm ra. – jgauffin

Trả lời

5

dân đã viết blog dài và trong phản ứng chiều sâu có thể làm tốt hơn nhiều hơn một vài tình tiết ở đây trên diễn đàn này. Hãy nhìn vào những điều sau hoặc thực hiện tìm kiếm Google cho "NHibernate vs Entity Framework 4.0":

Một Quest Với ​​EF 4,0 (Entity Framework) Và NHibernate Phần 1:
http://blogs.microsoft.co.il/blogs/berniea/archive/2009/06/09/a-quest-with-ef-4-0-entity-framework-and-nhibernate-part-1.aspx
http://blogs.microsoft.co.il/blogs/berniea/archive/2009/06/09/a-quest-with-ef-4-0-entity-framework-and-nhibernate-part-2.aspx

NHibernate vs Entity Framework 4.0:
http://ayende.com/Blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx

Entity Framework 4 vs NHibernate