In den letzten 2 Jahren, seit ich angefangen habe, Geschäftsanwendungen zu schreiben (bevor ich entweder Front-End- oder Systemprogrammierung auf sehr niedriger Ebene durchgeführt habe), habe ich Datasets, Linq to SQL und jetzt Entity Framework gelernt. Die logische Sache, die als nächstes zu betrachten ist, scheint NHibernate zu sein.
Gründe, warum ich letztendlich bei EF gelandet bin, sind: (1) es hat die beste Designerunterstützung und (2) es wird am meisten von Microsoft unterstützt.
Gründe (diese haben Vermutungselemente), die mich an NHibernate interessieren, sind: (1) Es wird möglicherweise nicht so schnell von einer völlig anderen Sache abgelöst, wie MS Datenzugriffstechnologien umwandelt. (2) Es scheint, als ob es entweder das vordere Rennen oder das zweite ist Front Running Tool für das, was es tut und (3) Es scheint ziemlich stabil und über die Zeit zurückverfolgbar zu sein.
Hat jemand einen Vergleich der beiden veröffentlicht? Ist eine für bestimmte Arten von Architekturen besser als die andere? Oder ist es nur eine Frage des Stils und der Präferenz?
quelle
Wir machen ein Projekt, bei dem der Architekt NHibernate gegenüber EF ausgewählt hat. Ich wünschte, die Wahl wäre in die andere Richtung gegangen, da von Anfang an eine Publisher-Subscriber-Anforderung bestand.
Wenn Sie vorhaben , das Synchronisierungsframework zu verwenden , wählen Sie EF, da NHibernate die Aktualisierungen (in den Spalten, in denen angegeben wird, woher die Daten stammen, wer sie geändert hat und meine neueste Kopie ist), die hinter den Kulissen stattfinden, nicht bewältigen kann.
Wenn Sie Daten von einer Datenbank in eine andere replizieren müssen (und die Primärschlüssel gleich lassen müssen), ist die
session.Replicate
Funktion schlecht dokumentiert und scheint länger zu dauern als eine direkte Kopie.quelle