c# - ¿Puede.NET 4 ISet<> HashSet<> reemplazar NHibernate Iesi.Collections ISet, HashSet?
castle-windsor (3)
¿Puede .NET 4 ISet <> HashSet <> reemplazar NHibernate Iesi.Collections ISet, HashSet? Estoy usando Castle Proxy, y NHibernate 3.0.
No, no a partir de esta respuesta.
El motor NHibernate usa la interfaz Iesi.Collections.ISet
en las clases de colección internas que se utilizan como envoltorios alrededor de las colecciones en sus clases en las que NHibernate persiste. No hay conversión directa a System.Collections.Generic.ISet<T>
.
Actualización: NHibernate 4 ahora usa HashSet<T>
del BCL internamente, y HashedSet<T>
se ha eliminado de la dependencia Iesi.Collections
. El enfoque para usar System.Collections.Generic.ISet<T>
ya está disponible.
Sí, con Nhibernate 4, usar System.Collections.Generic.ISet<>
ahora es el camino a seguir .
Sí. Hay dos enfoques:
- Declare su colección como
ICollection<T>
eHashSet<T>
comoHashSet<T>
. Ver este articulo Modelo colecciones como miembros privados yIEnumerable<T>
así que esto funciona bien, pero la desventaja es que no se puede exponerISet<T>
. - Utilice el paquete Set4Net4 NuGet de Jose Romaniello. Vea este artículo y el código fuente .