Nhóm của tôi đang bắt đầu một dự án mới trong ASP.NET MVC, và chúng tôi đang tự hỏi công nghệ nào sử dụng để truy cập dữ liệu. Làm thế nào để bạn quyết định cái nào là tốt nhất? Trong đó có hiệu suất tốt nhất? Cái nào dễ sử dụng và bảo trì hơn?NHibernate, Entity Framework, các bản ghi hoạt động hoặc linq2sql
Trả lời
Nếu .NET 4.0, hãy chọn giữa NHibernate hoặc Entity Framework. NHibernate là mở rộng hơn và thường có nhiều tính năng phong phú hơn. Entity Framework hoạt động tốt hơn cho các công ty muốn có những gì Microsoft cung cấp. Cả hai đều là các lựa chọn hợp lệ và chưa có ai công bố một đòn đáng kể khách quan bằng cách so sánh thổi. Đây là một trong những so sánh không khách quan hơn:
http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx
Nếu NET 3.5 hoặc sớm hơn, chọn NHibernate.
Choosing Database and ORM for a .NET project
Which ORM tool should I use for .Net development
Easiest to learn and use .NET ORM framework?
Some suggestions on which .NET ORM to look at learning
https://stackoverflow.com/questions/380620/what-object-mapper-solution-would-you-recommend-for-net
https://stackoverflow.com/questions/249550/what-orm-frameworks-for-net-do-you-like-best
Best free ORM tools to use with .NET 2.0/3.5
https://stackoverflow.com/questions/132676/which-orm-for-net-would-you-recommend
Sau 4 tháng 9 năm 2009:
O/RM Choice (not reliant on linq)
https://stackoverflow.com/questions/1469761/nhibernate-vs-entity-framework-vs-something-better
How to choose an object relational mapping for .net
Điều đó nói rằng, mọi thứ thay đổi. Bây giờ NHibernate hỗ trợ LINQ, tôi nghĩ NHibernate là sự lựa chọn rõ ràng trong phần lớn các tình huống. Đối với một dài hơn và khá lên đến phân tích ngày, cảm thấy tự do để đọc:
Câu hỏi này đã thu được một số câu trả lời trung bình ở trên, mặc dù đó là một câu hỏi: http://stackoverflow.com/questions/5101974/comparison-entity -framework –
Cá nhân, tôi yêu cả hai khung công tác, nhưng Entity Framework có một lợi thế lớn so với NHibernate: nó dễ dàng hơn để làm việc. Đặc biệt đối với những người mới đến NHibernate, giai đoạn khởi động có thể khá khó khăn. EF làm điều này tốt hơn nhiều. Tuy nhiên, ở một số khu vực NHibernate là cấp trên, ví dụ: khi nói đến việc mở rộng khung công tác NHibernate cung cấp nhiều tùy chọn hơn. –
Hãy xem TinyDA https://github.com/kumait/TinyDA – Kumait
Sở thích của tôi là LLBLGenPro - một ORM thực sự tuyệt vời hoạt động như bạn mong đợi. Nó không dựa trên cấu hình như khung thực thể hoặc nhibernate, nó tạo ra DAL của bạn dựa trên db của bạn (với nhiều sự linh hoạt thông qua các công cụ của họ).
LINQ2SQL là probobly dễ sử dụng nhất. Entity Framework cung cấp khả năng mở rộng tuyệt vời và bản phát hành trong tương lai sẽ có rất nhiều cải tiến.
Một quy tắc quan trọng về hiệu suất: viết mã dễ bảo trì, đọc và phân phối; nếu nó chậm - tối ưu hóa!
Tôi nghĩ rằng sự khác biệt về hiệu suất giữa các ORM ngày nay là đáng chú ý, vì vậy bạn nên chọn một cảm giác thoải mái và hiệu quả nhất để làm việc.
Nah;) https://github.com/FransBouma/LinqToSQL2 –
Khung thực thể có ánh xạ tốt hơn các mối quan hệ hơn linq2sql (ví dụ: nó có nhiều mối quan hệ).
Tôi chưa sử dụng hai cái còn lại, nhưng tôi đã sử dụng Hibernate trong Java và nó khá dễ sử dụng.
Có thể sử dụng PLINQO nếu bạn muốn hỗ trợ mối quan hệ nhiều-nhiều và sử dụng LINQ-2-SQL. http://www.codesmithtools.com/product/frameworks –
Điều này blog post so sánh các công nghệ dữ liệu khác nhau cho .NET ở các khía cạnh khác nhau (hiệu suất, khả năng bảo trì, khả năng kiểm tra, v.v.). Có thể có một số trợ giúp cho quá trình ra quyết định của bạn.
Michael, SUbSonic không hoàn toàn phù hợp. Tôi thực sự không hiểu tại sao mọi người lại thử. Chỉ cần lắp ráp 300 Kb của nó, ví dụ:4 Mb @ OpenAccess - nó phải rõ ràng nó chỉ là một món đồ chơi nhỏ. Và quên LINQ ở đó - tôi đặt cược hỗ trợ LINQ của nó sẽ không bao giờ được so sánh với những người khác. –
Xin lỗi, "SubSonic" và "Just its" => "So sánh";) –
Tôi phải đối mặt với tình huống khó xử tương tự. LINQ2SQL sẽ cung cấp cho bạn sự linh hoạt hơn và kiểm soát ngay lập tức quyền truy cập dữ liệu, tuy nhiên Khuôn khổ thực thể là giải pháp "doanh nghiệp". Tôi hiện đang cố gắng này - SubSonic và trông rất hứa hẹn.
Để so sánh ORMs - hãy nhìn vào http://ormbattle.net/
Trang web đó đã có danh tiếng rất xấu. :( –
Đồng ý, bạn phải xem công ty ORM nào hỗ trợ trang web này! – Codezy
Các bạn, hãy truy cập vào FAQ và Blog @ ORMBattle, họ giải thích rất nhiều: Michael, trang này có danh tiếng xấu _for you_ - Tôi nghi ngờ vì SubSonic bạn quảng cáo –
tôi lựa chọn là Devart LinqConnect (http: // www. devart.com/linqconnect/). Sản phẩm này dễ sử dụng như LINQ to SQL (và thậm chí tương thích với nó) và đồng thời cung cấp các tính năng ORM nâng cao như Entity Framework. Tôi thích Visual thiết kế của họ và các tính năng ORM của họ:
- loại Complex
- Lazy Loading
- PLINQ
Tôi đã sử dụng Entity Framework (Mã đầu tiên) và nHibernate một thời gian rồi và tôi thích nHibernate, đặc biệt thông thạo. Dường như để cho tôi linh hoạt hơn nhiều trong cách tôi ánh xạ các đối tượng của mình tới cơ sở dữ liệu. Ngoài ra, nó cho phép kiểm soát nhiều hơn đối với các hành động tải xuống và xếp tầng trên các đối tượng.
- 1. ADO.NET Entity Framework vs NHibernate
- 2. Entity Framework trả về các bản ghi riêng biệt
- 3. Quyết định giữa NHibernate vs Entity Framework?
- 4. Entity Framework 5 - Xóa Child ghi
- 5. Entity Framework 4 Chức năng Nhập khẩu không hoạt động
- 6. ADO.NET Entity Framework hoặc ADO.NET
- 7. Entity Framework 4.0 Databinding với phân loại không hoạt động
- 8. Tại sao TransactionScope không hoạt động với Entity Framework?
- 9. Microsoft Jet DB có hoạt động với Entity Framework không?
- 10. Lỗi khi xóa bản ghi bằng cách sử dụng Linq2SQL
- 11. Entity Framework: Bỏ qua các cột
- 12. WCF Data Services hoặc Entity Framework
- 13. Tìm tất cả các bản ghi trùng lặp trong bảng SQL với Entity Framework
- 14. Entity Framework + POCO
- 15. Các khuôn khổ của Entity Framework 4
- 16. Entity Framework 5.0 - phiên bản .NET Framework tối thiểu cần thiết? .Net 4.0 hoặc 4.5?
- 17. MS Entity Framework VS NHibernate và các đóng góp có nguồn gốc của nó (FluentNHibernate, LINQ cho NHibernate)
- 18. .NET ORMs - NHibernate (hoặc SubSonic hoặc bất kỳ thứ gì) có lợi thế hơn khi sử dụng Entity Framework?
- 19. SqlMetal thay thế cho Entity Framework 4
- 20. Cột DateCreated hoặc Modified - Entity Framework hoặc sử dụng trình kích hoạt trên SQL Server
- 21. Unicode với Entity Framework
- 22. Entity Framework - Bản đồ số thập phân (13,0) vấn đề
- 23. Entity Framework OfType()
- 24. Entity Framework Guid
- 25. Ruby on Rails Bản ghi Intellipection Bản ghi Hoạt động
- 26. Entity Framework 4.1: Ghi đè IEnumerable <ValidationResult> Validate
- 27. Các 'trong' vị trong Entity Framework
- 28. SQLite với Entity Framework
- 29. Entity Framework Query Xml
- 30. Entity Framework 4 lấy ID khóa chính cho bản ghi được chèn
Bản ghi hoạt động có nhiều mẫu thiết kế hơn công nghệ [http://en.wikipedia.org/wiki/Active_record_pattern] trừ khi bạn đề cập đến nội dung cụ thể như Castle ActiveRecord [http://www.castleproject.org/ activerecord/index.html]? –
đã nhận được, ya, tôi có nghĩa là hồ sơ hoạt động âm thanh dưới mức – Omu
Đối với F #, SQLProvider: https://github.com/fsprojects/SQLProvider –