2008-08-20 24 views
35

So hat das ADO.NET Entity Framework ein bisschen schlechte Presse bekommen (in Form von Blogeinträgen und einer Petition), aber ich möchte nicht zu Urteilen eilen. Ich bin zeitlich begrenzt zum Experimentieren, aber ich habe mich gefragt, ob jemand damit gearbeitet hat, aber mit mehr empirischem Feedback?ADO.NET Entity Framework vs NHibernate

Schließlich, was sind Gedanken über die Verwendung von NHibernate, die schon seit langer Zeit und Mai mehr ausgereifter sein als das ADO.NET Entity Framework.

Antwort

4

Microsoft haben alle zugegeben, dass das ADO.Net Entity Framework kein ORM ist (ich kann derzeit keine Referenz finden). Wenn Sie also an das Entity Framework als Abfrage-Engine denken, dann ist es anscheinend wirklich gut, was es tut. Für eine komplette ORM-Lösung sollten Sie sich jedoch woanders umsehen.

Die folgenden Blog-Post scheint diesen Unterschied zu bestätigen:

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

13

NHibernate reifere sein kann. Das heißt nicht unbedingt, dass es eine "bessere" Lösung ist. Wenn ich es einige Zeit bei meiner Arbeit benutzt habe, würde ich persönlich lieber fast alles verwenden als NHibernate (sogar geradliniges SQL, wenn die Migration aus der Ferne möglich wäre). Die Anzahl der von NHibernate ausgegebenen Fehlermeldungen, die nichts bedeuten (oder die etwas bedeuten, aber niemals auftreten sollten), ist absolut atemberaubend, ebenso wie einige Standardfehler (z. B. einmaliges Löschen der Sitzung für jedes in einem Suchvorgang zurückgegebene Objekt)).

Persönlich, wenn ich die Wahl habe, verwende ich LINQ to SQL für alle Datenbank arbeiten.

+0

hat die sinkende Unterstützung, die kürzlich in der Sphäre herumsprang, Sie dazu bringen, diese Entscheidung in Frage zu stellen? Ich habe das Gefühl, dass ich es aufgeben musste, aus Angst, dass der zukünftige Bedarf an Unterstützung von MS ignoriert würde. Gedanken? –

+0

Ich bin nicht sehr besorgt. Wenn es vollständig (unwahrscheinlich) aufgegeben wird, ist es für einen Drittanbieter immer möglich, eine LINQ to SQL-Schicht über LINQ (die nirgendwohin geht) zu erstellen, ähnlich wie bei LINQ to AD oder LINQ to NHibernate. Jemand würde das fast sicher tun. – TheSmurf

+0

Welche Fehler bekommen Sie? –

0

Ich habe ein Problem mit SubSonic. SubSonic erstickte an Tabellen mit demselben Namen, aber einem anderen Schema. Ich möchte nicht über die Best Practices beim Aufbau einer Datenbank sprechen, weil ich den Aufruf dazu nicht gemacht habe. (Wenn es darum geht, die Stimme zu heben und den Job zu behalten, würde ich lieber meinen Job behalten.:))

+0

Das ist ein guter Einblick - wo ich arbeite, hat jemand eine Datenbank auf die gleiche Weise mit doppelten Namen in mehreren Schemas entworfen. – t3rse

3

Ich habe SubSonic, LinqToSql, LinqToEntities verwendet. Jetzt versuche ich NHibernate. Im Moment - ich mag NHibernate (wahrscheinlich, weil ich Probleme nicht genug getroffen habe). Das Schlimmste von allen - LinqToEntities (das ist natürlich nur meine Meinung).

0

Ich komme um Entity zu mögen. Es dauert eine Weile, um herauszufinden, was alle Fehlermeldungen bedeuten, aber wenn man sich einmal daran gewöhnt hat, macht es wirklich gute Arbeit. Der größte Nachteil, den es gerade hat, ist keine echte Unterstützung für die Trennung.

12

Bei einer Null-Konfiguration Hauptvorteil von SubSonic ist, dass Sie bei Fluent nHibernate oder Entity Framework-Code-First

UPDATE von Răzvan Panda aussehen: Fluent NHibernate meist gemacht wurde durch die Aufnahme in NHibernate selbst von Mapping von Code veraltet finden : notherdev.blogspot.ie/2012/02/

+0

Entity Framework Code Zuerst ist auch Null-Konfiguration, so viel tatsächlich brauchen Sie nicht einmal eine Verbindungszeichenfolge, um es zum Laufen zu bringen. –

+0

@Lavinski Yeh, jetzt hat. Aber in 19/08/2009, als ich diesen Kommentar verlassen habe, gab es keine. – Regfor

+1

Umso mehr Grund, es auf dem neuesten Stand zu halten. –

6

Es ist 2 Jahre seit dem ursprünglichen Pfosten gewesen. Von dem, was ich verstehe, ist ADO.NET Entity Framework mit .net 4 gereift. Hat jemand neues Feedback zu diesem Thema?

Hier ist ein Link zu den EF hinzugefügt Verbesserungen seit der ersten Veröffentlichung in 2008 http://blogs.msdn.com/b/adonet/archive/2009/05/11/update-on-the-entity-framework-in-net-4-and-visual-studio-2010.aspx

Update: Ich fand diesen Thread auf Stack-Überlauf, der die aktualisierte EF diskutieren einen schönen Job macht:

Entity Framework 4 vs NHibernate