Can .NET 4 ISet<> HashSet<> replace NHibernate Iesi.Collections ISet , HashSet ? I am using Castle proxy, and NHibernate 3.0 .
Yes. There are two approaches:
ICollection<T>
and initialize it as
HashSet<T>
. See this article. I model collections as private
members and expose IEnumerable<T>
so this works well, but the downside is that you can't expose ISet<T>
.No, not as of this reply.
The NHibernate engine uses the Iesi.Collections.ISet
interface on internal collection classes which are used as wrappers around collections in your classes which NHibernate persists. There is no direct conversion to System.Collections.Generic.ISet<T>
.
Update: NHibernate 4 now uses HashSet<T>
from the BCL internally, and HashedSet<T>
has been removed from the Iesi.Collections
dependency. The approach to use System.Collections.Generic.ISet<T>
is now available.
Yes, with Nhibernate 4, using System.Collections.Generic.ISet<>
is now the way to go.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With