2008-08-20 30 views
35

Vì vậy khung ADO.NET Entity đã nhận được một chút báo chí xấu (dưới dạng các mục nhập blog và một kiến ​​nghị) nhưng tôi không muốn vội vàng phán xét. Tôi bị hạn chế về thời gian để thử nghiệm nhưng tôi đã tự hỏi có ai đã làm việc với nó chưa với nhiều phản hồi thực nghiệm hơn không?ADO.NET Entity Framework vs NHibernate

Cuối cùng, suy nghĩ về việc sử dụng NHibernate đã được sử dụng trong một thời gian dài và có thể là trưởng thành hơn ADO.NET Entity Framework.

Trả lời

4

Microsoft có tất cả nhưng đã thừa nhận rằng Khung thực thể ADO.Net không phải là ORM (Tôi không thể tìm thấy tham chiếu hiện tại). Vì vậy, nếu bạn nghĩ về khung Entity như một công cụ truy vấn thì rõ ràng nó thực sự tốt ở những gì nó làm. Đối với một giải pháp ORM hoàn chỉnh, bạn có thể muốn tìm nơi khác tuy nhiên.

Các bài viết trên blog sau đây dường như chịu ra sự khác biệt này:

http://blogs.msdn.com/dsimmons/archive/2008/05/17/why-use-the-entity-framework.aspx

13

NHibernate có thể trưởng thành hơn. Điều đó không nhất thiết có nghĩa là giải pháp "tốt hơn". Có sử dụng nó tại công việc của tôi một thời gian, cá nhân tôi muốn sử dụng hầu như bất cứ điều gì hơn NHibernate (ngay cả SQL thẳng, nếu di chuyển từ xa khả thi). Số lượng thông báo lỗi được ném bởi NHibernate không có nghĩa là gì (hoặc điều đó có nghĩa là một cái gì đó nhưng không bao giờ xảy ra) hoàn toàn đáng kinh ngạc, như một số hành vi mặc định của nó (chẳng hạn như xóa phiên một lần cho mỗi đối tượng được trả về trong Tìm).

Cá nhân, khi tôi có lựa chọn, tôi sử dụng LINQ to SQL cho tất cả công việc cơ sở dữ liệu.

+0

hỗ trợ subsiding gần đây đã diễn tả trong 'lĩnh vực khiến bạn đặt câu hỏi về quyết định này? tôi cảm thấy như thể tôi cần phải từ bỏ nó vì sợ rằng nhu cầu hỗ trợ trong tương lai sẽ bị MS bỏ qua. suy nghĩ? –

+0

Tôi không lo lắng quá mức. Nếu nó bị bỏ rơi hoàn toàn (không), thì bên thứ ba có thể xây dựng một lớp LINQ to SQL của LINQ trơn tru (không đi đâu cả), tương tự như các nhóm đã làm LINQ to AD hoặc LINQ to NHibernate. Ai đó gần như chắc chắn sẽ làm điều này. – TheSmurf

+0

Bạn gặp phải lỗi gì? –

0

Tôi gặp sự cố với SubSonic. SubSonic bị chết cho các bảng có cùng tên nhưng lược đồ khác nhau. Tôi không muốn thảo luận về các phương pháp hay nhất để xây dựng một cơ sở dữ liệu, bởi vì tôi đã không gọi điện thoại để làm như vậy (Khi nói đến việc nâng cao giọng nói và duy trì công việc, tôi muốn giữ công việc của mình.)))

+0

Đó là một cái nhìn sâu sắc - nơi tôi làm việc một người nào đó thiết kế một cơ sở dữ liệu theo cùng một cách với các tên trùng lặp trên nhiều lược đồ. – t3rse

3

Tôi đã sử dụng SubSonic, LinqToSql, LinqToEntities. Bây giờ tôi đang thử NHibernate. Để bây giờ - tôi thích NHibernate (có thể gây ra tôi đã không gặp vấn đề đủ). Tồi tệ nhất trong số họ - LinqToEntities (tất nhiên chỉ là ý kiến ​​của tôi).

0

Tôi sắp đến để thích Thực thể. Phải mất một thời gian để tìm ra tất cả các thông báo lỗi của nó có nghĩa là gì nhưng một khi bạn đã quen với nó nó thực sự là một công việc tuyệt vời. Hạn chế lớn nhất mà nó có ngay bây giờ là không có hỗ trợ thực sự cho việc bị ngắt kết nối.

12

Nếu không cấu hình là lợi thế chính của cận âm, bạn có thể nhìn vào Fluent nHibernate hoặc Entity Framework Code-First

CẬP NHẬT từ Răzvan Panda: thành thạo NHibernate đã được chủ yếu là làm lỗi thời bởi đưa vào NHibernate tự lập bản đồ theo mã, xem : notherdev.blogspot.ie/2012/02/

+0

Mã khuôn khổ thực thể Đầu tiên cũng là cấu hình không, rất nhiều trong thực tế bạn thậm chí không cần một chuỗi kết nối để làm cho nó chạy. –

+0

@Lavinski Yeh, hiện đã có. Nhưng vào ngày 19/08/2009 khi tôi để lại bình luận này thì không có. – Regfor

+1

Tất cả các lý do khác để giữ cho nó cập nhật. –

6

Đã 2 năm kể từ bài đăng gốc. Từ những gì tôi hiểu ADO.NET Entity Framework đã trưởng thành với .net 4. Có ai có bất kỳ phản hồi mới về chủ đề này?

Dưới đây là một liên kết đến những cải tiến thêm vào EF kể từ khi phiên bản đầu tiên trong 2008 http://blogs.msdn.com/b/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net-4-and-visual-studio-2010.aspx

Cập nhật: Tôi tìm thấy thread này trên stack overflow mà làm một công việc tốt đẹp của thảo luận về EF Cập nhật:

Entity Framework 4 vs NHibernate