2 Stimmen

LINQ vs. nHibernate

Frage: Bis jetzt wusste ich nicht, dass LINQ ein ORM-Tool ist. Ich habe es immer als eine neue Art von SQL-Abfragesprache gesehen. Deshalb habe ich vor kurzem angefangen, nHibernate zu verwenden.

Daher meine Frage:
Was sind die Vor- und Nachteile von LINQ im Vergleich zu nHibernate?

Soweit ich herausgefunden habe, sind die Unterschiede, dass LINQ erfordert .NET > 2.0 (es sei denn, Sie hacken es, was unsicher und illegal ist), während nHibernate mit >=2.0 arbeitet.
Und dass Sie für LINQ eine LINQ-Provider-DLL eines Anbieters oder Drittanbieters benötigen, wenn Sie nicht MS-SQL verwenden.
Was ich nicht genau weiß, ist, welche schneller/einfacher ist, und ob es LINQ-Anbieter für alle Datenbanken gibt, die von nHibernate unterstützt werden, und wie gut LINQ mit mono funktioniert.

6voto

burnside Punkte 2511

Linq ist kein ORM-Tool. Linq2Sql und das Entity Framework sind ORM-Tools von Microsoft, die Linq verwenden. Ich fand dieser Artikel Der Vergleich von NHibernate mit Entity Framework 4.0 ist sehr aufschlussreich.

Zusammengefasst: NHibernate ist seit langem etabliert und getestet, und Fluent ist eine Freude. Leider leidet NHibernate in der Dokumentation, aber ist OS, so dass Sie in den Code graben können. EF 1.0 war furchtbar, aber 4.0 ist viel besser. Da es sich um ein MS-Produkt handelt, wird es stark propagiert, unterstützt und es gibt viele Beispiele im Internet. 4.0 ist im Moment noch Beta.

3voto

Rune Punkte 8282

LINQ ist kein ORM. LINQ ist lediglich eine Abfragetechnologie/Bibliothek mit spezieller Syntax in C# und LINQ und NHibernate sind komplementäre Technologien. Es gibt sogar L INQ2NHiernat .

LINQ2SQL ist ein ORM. Was die Geschwindigkeit angeht, würde ich mir keine allzu großen Sorgen machen, es sei denn, Sie entwickeln eine Börsensoftware oder etwas Ähnliches, bei dem Millisekunden absolut entscheidend sind. Ich glaube, sogar StackOverflow läuft auf LINQ2SQL, oder tat es irgendwann, aber ich könnte mich irren.

1voto

Paco Punkte 8264

Es gibt 2 Linq-Provider für NHibernate. Sie unterstützen alle Datenbanken, die NHibernate unterstützt

1voto

UpTheCreek Punkte 29856

Denken Sie daran, dass LinqToSql eigentlich LinqToMsSqlServer ist - wenn Sie diesen Weg wählen, sind Sie gebunden...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X