Can .NET 4 ISet <> HashSet <> reemplazar NHibernate Iesi.Collections ISet, HashSet? Estoy usando Castle proxy y NHibernate 3.0.Can .NET 4 ISet <> HashSet <> replace NHibernate Iesi.Collections ISet, HashSet?
Respuesta
No, no como de esta respuesta.
El motor NHibernate utiliza la interfaz Iesi.Collections.ISet
en las clases de colección internas que se utilizan como envoltorios alrededor de colecciones en sus clases que NHibernate persiste. No hay una conversión directa a System.Collections.Generic.ISet<T>
.
Actualización: NHibernate 4 ahora utiliza 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í. Hay dos enfoques:
- declara su colección como
ICollection<T>
e inicializar comoHashSet<T>
. Ver this article. Modelo colecciones como miembros privados y expongoIEnumerable<T>
, así que esto funciona bien, pero la desventaja es que no se puede exponerISet<T>
. - Utilice el paquete Set4Net4 NuGet de Jose Romaniello. Consulte this article y source code.
gracias por el enlace. –
Me gusta el segundo enfoque. – kaptan
Hm, cuando lo probé, NHib por alguna razón estaba recreando mi colección como una matriz, por lo que no pude agregar/eliminar elementos. Simplemente miró a ICollection y decidió que puede poner lo que quiera ... – JustAMartin
Sí, con Nhibernate 4, usando System.Collections.Generic.ISet<>
ahora es the way to go.
- 1. Llamando a Distinct <>() en HashSet <T>
- 2. SortedSet <T> vs HashSet <T>
- 3. Cómo agregar un elemento a un ISet <T>?
- 4. Usando Statement with Generics: using ISet <> = System.Collections.Generic.ISet <>
- 5. Convierta una matriz a HashSet <T> en .NET
- 6. NHibernate ISet Vs IList
- 7. Type.GetType(), HashSet <T> y la Asamblea Calificación
- 8. ¿Por qué HashSet <T> no implementa IReadOnlyCollection <T>?
- 9. C# HashSet <T> rendimiento de búsqueda (en comparación con un ObservableCollection <T>)?
- 10. ¿Es Enumerable.ElementAt <TSource> O (1) para HashSet?
- 11. Conversión de HashSet <String> a Cadena []
- 12. ¿Por qué es HashSet <T> .IsReadOnly explícito?
- 13. C todo el contenido de HashSet <string>
- 14. ¿Cuándo debo usar el tipo HashSet <T>?
- 15. HashSet <T> en Windows Phone 7
- 16. ¿Cuál es la complejidad del tiempo de búsqueda de HashSet <T> (IEqualityComparer <T>)?
- 17. Convierta un HashSet <T> en una matriz en .NET
- 18. ¿Es un HashSet <T> lo mismo que la lista <T> pero con unicidad?
- 19. HashSet <T> frente Diccionario <K, V> w.r.t tiempo de búsqueda para encontrar si existe un elemento
- 20. Determine el complemento relativo de dos conjuntos de IEnumerable <T> en .NET
- 21. NHibernate: QueryOver <> help
- 22. <%# %> vs <%= %>
- 23. .Net 4: forma fácil de crear dinámicamente List <Tuple<...>> resultados
- 24. ASP.NET <%= %> vs <%: %>
- 25. ¿Por qué no hay una interfaz IQueue <T> o IStack <T> en .NET Framework?
- 26. <script></script> o <script />?
- 27. SortedList <>, SortedDictionary <> y Dictionary <>
- 28. lista única <T> en .NET 2
- 29. ¿Pueden los terminales Can detectar <Shift-Enter> o <Control-Enter>?
- 30. incluyendo <xstring>, <cstring>, <string> y <wstring> en C++
http://stackoverflow.com/questions/6272636/nhibernate-unable-to-cast-persistentgenericset-to-iset –