Frage

Ich finde, ich kann mit NHibernate mehr tun, und sogar Schloss als mit dem Linq to Entities oder Linq to SQL.

Bin ich verrückt?

War es hilfreich?

Lösung

Nein du bist nicht verrückt. nHibernate ist eine vollständige oder Mapper, Linq to SQL und Linq to Entities nicht implementieren alles, was man von einem OR-Mapper erwarten würde und gezielt auf eine etwas andere Gruppe von Entwicklern.

Aber nicht, dass Sie lassen allerdings Linq abschrecken. Linq ist immer noch eine ziemlich gute Idee .. Versuchen Sie Linq to nHibernate: -)

Andere Tipps

Die großen Nachteile zu NHibernate, Schloss, etc., ist, dass sie nicht genau leicht (besonders NHibernate.)

Linq to SQL ist gut für eine leichte, begrenzte Verwendung ORM.

Ich habe beide NHibernate und LINQ to SQL verwendet. Aus meiner Sicht kommt es auf das Projekt, wenn ich etwas schnell brauchen, würde ich L2S wählen, es ist so einfach, die dbml Zuordnung zu erstellen und zu verwenden beginnen. Wenn ich eine High-Level-Enterprise-Lösung zu entwickeln ich für den bewährten ORM gehen würde - NHibernate, finde ich den Logging & Transaktion verfügt über einfach zu bedienen

.

LINQ to SQL hat eine relativ kurze Lernkurve, NHibernate eine viel steilere Lernkurve hat.

LINQ to SQL unterstützt nur SQL Server, so dass, wenn Sie haben eine Oracle-Datenbank dann wird die Entscheidung bereits getroffen -. NHibernate

Ich würde empfehlen, Check-out http://www.summerofnhibernate.com/ für hervorragende Screencasts auf das Lernen NHibernate.

Eine Sache im Auge zu behalten ist, dass NHibernate ein absolutes Schwein konfigurieren sein kann - vor allem, da seine basierten hauptsächlich auf XML-Konfigurationsdateien wegen seiner Wurzeln als der ursprünglichen Ruhezustand.

Fluent NHibernate geht einen Weg dies weniger schmerzhaft zu machen.

Linq sicherlich obwohl passt in den allgemeinen 'Weg', in dem .NET funktioniert.

  

Blockquote Linq sicherlich obwohl passt in den allgemeinen 'Weg', in dem .NET funktioniert

Huch, diese Art von Stimmung macht mir Angst. Die RAD Sachen in .net gebaut ist, nicht wie dot net funktioniert, es ist nur ein Werkzeug-Set für Prototypen bis zu bekommen. .NET ermöglicht es uns voll DDD-Anwendungen zu tun, w / ein hohes Maß an Zusammenhalt, Trennungen von Bedenken, und ermöglicht es uns, entkoppelt Code zu schreiben, trotz aller attemps ms paar Dinge macht. Ich würde stark anderer Meinung sein, dass .net mag gekoppelt werden, certian Werkzeuge wie gekoppelt werden, ich werde umfassen Linq in diesem Kampf auf SQL. LINQ to SQL zerstört die Idee, ein separates Domain-Modell mit. Ich erschaudern bei dem Gedanken an mein Datenbankschema als die zugrunde liegenden Modellobjekte verwenden. Proper ORM-Tools sollten es uns ermöglichen, unsere Domäne zuerst zu modellieren, dann verknüpfen unsere relationale Datenbank zu diesen Modellen. NICHT umgekehrt.

Ich habe das Entity Framework nicht versucht, aber ich würde auf jeden Fall NHibernate über Linq to SQL empfehlen; Der größte Grund, warum ich geben kann, ist nur die Kontrolle. Linq to SQL mag viel mehr Kontrolle über alles haben, das Objekt zu laden und Wartung alle Arten von Informationen über das Objekt zu verfolgen. Wenn Sie / deserialize Serialisierung können die Tracking-Informationen verloren gehen und seltsame Dinge passieren können, wenn es wieder zu speichern. NHibernate arbeitet mehr als ein Repository sollte - Sie es von Hand, was Objekt, das Sie wollen (, dass Sie es so konfiguriert haben, zu verstehen, natürlich), und es setzt sie weg in der Datenbank, und zwar unabhängig von dem, was Sie mit ihm gemacht habe

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top