2009-07-23 7 views
0

Je veux créer ma couche de base de données afin que je puisse l'échanger et utiliser dis LINQ ou quoi que ce soit dans le futur.Quel type de retour utilise nHibernate? Liste <T>?

Dans ma classe abstraite (ou interface), quel type de retour dois-je utiliser pour les résultats renvoyant une liste/collection d'éléments?

Est-ce que nHibernate renvoie la liste?

Répondre

2

Vous devez utiliser IList<T>. NHibernate retourne toujours un IList<T> de ses collections et la documentation dit:

Les noms des applications de collecte est un endroit évident où les différences entre Java et .NET sont affichés. Bibliothèque de collection de Java a beaucoup plus d'options que System.Collection fait.

* The <list> maps directly to an IList. 
* The <map> maps directly to an IDictionary. 
* The <bag> maps to an IList. A <bag> does not completely comply with 

l'interface IList parce que la méthode Add() n'est pas garanti pour retourner l'index correct . Un objet peut être ajouté à un sans initialiser le IList. Assurez-vous de masquer le IList auprès des consommateurs de votre API ou de le rendre bien documenté. * Les mappages vers un Iesi.Collections.ISet. Cette interface fait partie de l'ensemble Iesi.Collections distribué avec NHibernate.

De plus, il est généralement recommandé de coder sur une interface, et non sur une abstraction.

Questions connexes