EF vs. NHibernate [chiuso]

8

Negli ultimi 2 anni da quando ho iniziato a scrivere applicazioni di business (prima ho fatto programmi di alto livello di front end o di programmazione di livello molto basso), set di dati appreso, da linq a sql e ora framework di entità. La cosa logica da guardare dopo sembra essere NHibernate.

I motivi per cui alla fine sono arrivato a EF sono: (1) ha il miglior supporto per i designer e (2) è il più supportato da Microsoft.

I motivi (questi hanno elementi di assunzione) Sono interessato a NHibernate: (1) potrebbe non essere superato da una cosa completamente diversa con la stessa rapidità con cui MS abbatte le tecnologie di accesso ai dati (2). o il secondo strumento frontale per quello che fa e (3) Sembra essere stabile e tracciabile indietro nel tempo un po '.

Qualcuno ha pubblicato un compendio dei due? Uno è migliore dell'altro per certi tipi di architetture? O è solo una questione di stile e preferenza?

    
posta Aaron Anodide 19.08.2011 - 22:26
fonte

2 risposte

6

A questo punto penso che i principali (solo?) vantaggi che NH ha rispetto all'EF sono alcuni a grana molto fine recupero delle strategie . Invece di caricare pigro OPPURE di caricare tutto, NH ti offre alcune interessanti opzioni intermedie.

Detto questo, non ho mai avuto bisogno di quel livello di controllo sull'accesso ai miei dati, quindi la semplicità di EF ha reso la scelta facile.

Tieni presente che il file di progettazione EF che altrimenti è così bello lavorare può diventare un incubo nel controllo del codice sorgente; non si fonde bene, o del tutto. Assicurati di verificarlo con un blocco esplicito ogni volta che devi cambiare materiale.

    
risposta data 19.08.2011 - 23:22
fonte
3

Stiamo facendo un progetto in cui l'architetto ha scelto NHibernate su EF. Spero che la scelta sia andata diversamente dall'obbligo di sottoscrizione di un editore dall'inizio.

Se prevedi di utilizzare framework di sincronizzazione , vai con EF, poiché NHibernate non può farcela gli aggiornamenti (alle colonne che specificano da dove provengono i dati, chi li ha modificati e è la mia copia l'ultima) che vanno dietro le quinte.

Se è necessario replicare i dati da un database a un altro (e mantenere le chiavi primarie allo stesso modo), la funzione session.Replicate è scarsamente documentata e sembra richiedere più tempo di una copia diretta.

    
risposta data 19.08.2011 - 23:04
fonte

Leggi altre domande sui tag