Can .NET 4 ISet <> HashSet <> sostituire NHibernate Iesi.Collections ISet, HashSet? Sto usando il proxy Castle e NHibernate 3.0.Can .NET 4 ISet <> HashSet <> sostituire NHibernate Iesi.Collections ISet, HashSet?
risposta
No, non da questa risposta.
Il motore di NHibernate utilizza l'interfaccia Iesi.Collections.ISet
per le classi di raccolta interne che vengono utilizzate come wrapper attorno alle raccolte nelle classi in cui persiste NHibernate. Non c'è conversione diretta a System.Collections.Generic.ISet<T>
.
Aggiornamento: NHibernate 4 ora utilizza HashSet<T>
dal BCL internamente e HashedSet<T>
è stato rimosso dal Iesi.Collections
dipendenza. L'approccio all'uso di System.Collections.Generic.ISet<T>
è ora disponibile.
Sì. Ci sono due approcci:
- dichiarare la vostra collezione come
ICollection<T>
e inizializzarlo comeHashSet<T>
. Vedi this article. Io modellino le collezioni come membri privati e espongoIEnumerable<T>
quindi funziona bene, ma il lato negativo è che non è possibile esporreISet<T>
. - Utilizzare il pacchetto Set4Net4 NuGet di Jose Romaniello. Vedi this article e source code.
grazie per il collegamento. –
Mi piace il secondo approccio. – kaptan
Hm, quando l'ho provato, NHib per qualche motivo stava ricreando la mia collezione come array, quindi non ho potuto aggiungere/rimuovere elementi. Ha appena guardato ICollection e ha deciso che può mettere tutto ciò che gli piace ... – JustAMartin
Sì, con Nhibernate 4, utilizzando System.Collections.Generic.ISet<>
è ora the way to go.
- 1. SortedSet <T> vs HashSet <T>
- 2. Perché il set F # non implementa ISet <T>?
- 3. Utilizzo dell'istruzione con Generics: utilizzo di ISet <> = System.Collections.Generic.ISet <>
- 4. Perché HashSet <T> .IsReadOnly esplicito?
- 5. HashSet <T> .RemoveWhere() e GetHashCode()
- 6. NHibernate ISet Vs IList
- 7. Un modo efficiente per clonare un HashSet <T>?
- 8. Dove HashSet <T> è entrato in VS2012?
- 9. Perché HashSet <T> non implementa IReadOnlyCollection <T>?
- 10. C# HashSet <T> prestazioni di ricerca (rispetto a ObservableCollection <T>)?
- 11. Vantaggi della conversione dell'elenco <String> in HashSet <String> Java
- 12. Contenitore C++ veloce come C# HashSet <T> e Dizionario <K,V>?
- 13. Come convertire l'elenco <T> in HashSet <T> in C#?
- 14. È un HashSet <T> uguale all'Elenco <T> ma con univocità?
- 15. HashSet <T> su Windows Phone 7
- 16. Perché inizializzare HashSet <> (0) su zero?
- 17. Contiene di HashSet <Integer> in Python
- 18. Impossibile convertire HashSet a IReadOnlyCollection
- 19. Che cosa è un sostituto adatto di NHibernate/Iesi.Collezioni.Generic.ISet <T>?
- 20. Convertire un array in un HashSet <T> in .NET
- 21. Convertire un HashSet <T> ad una matrice in .NET
- 22. Determina il complemento relativo di due set IEnumerable <T> in .NET
- 23. NHibernate: QueryOver <> help
- 24. Converti Set <Map.Entry <K, V>> a HashMap <K, V>
- 25. ><<..>> = in uscita
- 26. .Net 4: Un modo semplice per creare dinamicamente List <Tuple<...>> risultati
- 27. <MailDefinition> e <%%> segnaposto
- 28. Casting Map <Integer, Set <Object>>
- 29. Conversione da IEnumerable <IEnumerable <string>> per ICollection <T>
- 30. Lista Unica <T> in .NET 2
http://stackoverflow.com/questions/6272636/nhibernate-unable-to-cast-persistentgenericset-to-iset –