È NHibernate 3.0 built-in Linq fornitore stabile?
-
12-10-2019 - |
Domanda
Posso dipendere da NHibernate 3.0 built-in provider di Linq per eseguire query complesse contengono le funzioni di aggregazione come Max e Min e contiene operazioni sulle stringhe, come Contiene, StartsWith, o EndsWith ??
Soluzione
C'è stato molto dibattito sulla lista nhusers in quanto vi sono alcune questioni ancora in sospeso.
Vorrei guardare sul gruppo nhusers e leggere alcuni dei post e rendere il vostro propria mente. Vedi qui per i messaggi .
Personalmente ho trovato che queryover
fa tutto quello che mi serve così io per primo avrebbe aspettato fino a quando il provider Linq diventa più stabile nel tempo.
Vorrei raccomando a far parte del gruppo nhusers per ottenere una migliore sensazione.
Altri suggerimenti
I problemi evidenti che ho trovato è:
- metodo .OfType () non è implementata che può essere un problema con gerarchie di ereditarietà.
- A sinistra si unisce non sono supportati
- non banale gruppo da operazioni non funzionano (anche qualcosa di semplice come l'ordinamento per numero di gruppo).
- Fetch () deve essere l'ultimo metodo nella query che può rendere il paging con le collezioni associati difficili.
Tuttavia, è sicuramente un miglioramento dal provider NHContrib.
Le operazioni che hai elencato sono supportati bene negli scenari usuali.
Il provider LINQ è molto più stabile e avanzato rispetto a quello scritto da Ayende. (Non dising quello che ha scritto è stato a causa di ciò che ha scritto che ho preso di nuovo NH)
Credo che l'unico problema che ho incontrato con NH Query è tipi compositi. Si può fare loro in EF / L2S, e NH3 sembra generare il codice SQL corretto, ma non riesce a raggiungere l'esecuzione di esso.
Personalmente mi piace QueryOver, si legge meglio per me.