c# nhibernate collections castle-windsor

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:

  1. Declare su colección como ICollection<T> e HashSet<T> como HashSet<T> . Ver este articulo Modelo colecciones como miembros privados y IEnumerable<T> así que esto funciona bien, pero la desventaja es que no se puede exponer ISet<T> .
  2. Utilice el paquete Set4Net4 NuGet de Jose Romaniello. Vea este artículo y el código fuente .