Mój zespół rozpoczyna nowy projekt w ASP.NET MVC, a my zastanawialiśmy się, co technologia używać do dostępu do danych. Jak zdecydujesz, który z nich jest najlepszy? Który ma najlepszą wydajność? Który z nich jest łatwiejszy w obsłudze i konserwacji?NHibernate, Entity Framework, aktywne rekordy lub Linq2Sql
Odpowiedz
Jeśli .NET 4.0, wybierz między NHibernate lub Entity Framework. NHibernate jest bardziej rozszerzalny i generalnie bardziej funkcjonalny. Entity Framework działa lepiej dla firm, które wolą mieć to, co zapewnia Microsoft. Oba są poprawnymi opcjami i nikt nie opublikował jeszcze obiektywnego znaczącego uderzenia przez porównanie ciosów. Jest to jeden z lepszych niż obiektywnych porównań:
http://ayende.com/blog/archive/2010/01/05/nhibernate-vs.-entity-framework-4.0.aspx
Jeśli .NET 3.5 lub wcześniej, wybierz 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
Po 04 września 2009 roku:
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
To powiedziawszy, rzeczy się zmieniają. Teraz, gdy NHibernate obsługuje Linq, myślę, że NHibernate jest oczywistym wyborem w większości sytuacji. Przez dłuższy i dość do analiz data, zachęcamy do zapoznania się następująco:
To pytanie uzyskało kilka powyżej średniej odpowiedzi, mimo że jest to dup: http://stackoverflow.com/questions/5101974/comparison-entity -ramka –
Osobiście uwielbiam obie struktury, ale Entity Framework ma jedną wielką przewagę nad NHibernate: znacznie łatwiej jest pracować. Specjalnie dla osób, które dopiero rozpoczynają naukę w NHibernate, faza uruchamiania może być dość trudna. EF robi to o wiele lepiej. Jednak w niektórych obszarach NHibernate jest lepszy, np. jeśli chodzi o rozszerzanie struktury, NHibernate oferuje więcej opcji. –
Spójrz na TinyDA https://github.com/kumait/TinyDA – Kumait
Moje preferencje to LLBLGenPro - naprawdę świetny ORM, który działa tak, jak można się spodziewać. Nie opiera się na konfiguracji, takiej jak struktura encji czy nhibernate, generuje DAL na podstawie bazy danych (z dużą elastycznością dzięki narzędziom).
linq2sql jest probobly najłatwiejsze w użyciu. Entity Framework zapewnia doskonałą rozszerzalność, a przyszłe wydanie będzie zawierało wiele ulepszeń.
Jednym z kluczowych reguła wydajność: wprowadź kod, który jest łatwy w utrzymaniu, czytać i dystrybucji; jeśli ma zwolnić - zoptymalizuj!
myślę, że różnica w wydajności między ORMs jest dziś bareley wyczuwalny, dlatego należy wybrać ten, który czuje się najbardziej komfortowo i skuteczny w pracy.
Nah;) https://github.com/FransBouma/LinqToSQL2 –
Entity Framework ma lepsze odwzorowanie relacji niż linq2sql (na przykład, ma wielu wielu relacji).
nie użyłem dwa pozostałe, ale użyłem Hibernate w Javie i to było bardzo proste w użyciu.
Może użyć PLINQO jeśli chcesz obsługiwać wiele do wielu i używać LINQ-2-SQL. http://www.codesmithtools.com/product/frameworks –
Ten blog post porównuje różne technologie transmisji danych dla .NET w różnych aspektach (wydajność, łatwość konserwacji, testowalność itp). Może być pomocna w procesie podejmowania decyzji.
Michael, SUbSonic nie jest przyzwoity. Naprawdę nie rozumiem, dlaczego ludzie nawet tego próbują. Tylko jego zespół 300 Kb do np.4 Mb @ OpenAccess - musi być jasne, że to tylko mała zabawka. I zapomnij o LINQ - założę się, że jego obsługa LINQ nigdy nie byłaby porównywalna z innymi. –
Niestety, "SubSonic" i "Just its" => "Porównaj jego";) –
Stoję w obliczu tego samego dylematu. LINQ2SQL zapewni większą elastyczność i natychmiastową kontrolę dostępu do danych, , jednak Entity Framework to rozwiązanie "enterprise". Obecnie próbuję tego - SubSonic i wyglądam bardzo obiecująco.
Aby porównać ORMS - spojrzeć na http://ormbattle.net/
Ta strona ma już bardzo złą reputację. :( –
Zgoda, musisz sprawdzić, która firma ORM obsługuje tę stronę! – Codezy
Faceci, odwiedź FAQ i Blog @ ORMBattle, wiele wyjaśniają. Michael, ta strona ma złą reputację _for__ - Podejrzewam, ponieważ SubSonic promujesz tutaj pokazuje swoje prawdziwe oblicze: –
Mojego wyboru jest Devart LinqConnect (http: // www. devart.com/linqconnect/). Ten produkt jest tak łatwy w użyciu, jak LINQ do SQL (a nawet jest z nim zgodny), a jednocześnie zapewnia zaawansowane funkcje ORM, takie jak Entity Framework. Wolę ich programu Visual Designer i ich funkcje ORM:
- typów złożonych
- Lazy Loading
- PLINQ
Używam Entity Framework (kod) i NHibernate pierwszy od jakiegoś czasu , a ja wolę nHibernate, szczególnie płynnie. Wydaje mi się, że mam dużo większą swobodę w mapowaniu moich obiektów do bazy danych. Dodatkowo zapewnia znacznie większą kontrolę nad leniwym ładowaniem i kaskadowaniem akcji na obiektach.
Aktywny zapis to raczej wzór niż technologia [http://en.wikipedia.org/wiki/Active_record_pattern], chyba że odnosisz się do czegoś konkretnego, jak Castle ActiveRecord [http://www.castleproject.org/ activerecord/index.html]? –
mam to, cóż, mam na myśli poddźwiękowy aktywny rekord – Omu
dla F #, SQLProvider: https://github.com/fsprojects/SQLProvider –