the biggest difference is sets have exactly 1 instance of an object in their collection. a collection can have multiple instances. There are also set operations which are part of the ISet<> interface which can be useful. here is an example of exactly 1 instance:
var entity = new Entity(1); var set = new HashedSet<Entity>(); set.Add(entity); set.Add(entity); Assert.That(set.Count, Is.EqualTo(1)); var collection = new List<Entity>(); collection.Add(entity); collection.Add(entity); Assert.That(collection.Count, Is.EqualTo(2)); I have also found that Lists and Sets behave differently when they are mapped to M:N relationships. On Dec 23, 6:44 am, José F. Romaniello <[email protected]> wrote: > The only way to use SETs in nhibernate is with Sets from Iesi.Collections. > Having say that your field or property type could be ICollection but the > instance in transients objetcs must be set, this is an example: > > public class Invoice > { > private ISet<InvoiceLIne> lines = new HashedSet<InvoiceLine>(); > > public ICollection<InvoiceLine> Lines {get{return lines;}} > > } > > this is ok too: > > public class Invoice > { > private ICollection<InvoiceLine> lines = new HashedSet<InvoiceLine>(); > > public ICollection<InvoiceLine> Lines {get{return lines;}} > > } > > but you miss sets operations. > > 2010/12/23 Max André Bündchen <[email protected]> > > > I'm reading the NHibernate 3.0 Cookbook and a question appeared when I > > played with NHibernate. As the System.Collections.Generic.ISet is not > > supported in <set> mappings, I can use the > > Iesi.Collections.Generic.ISet or the > > System.Collections.Generic.ICollection. > > > What's the drawback of use native ICollection instead of ISet? I found > > a few topics about it but not a clear answer. > > > -- > > You received this message because you are subscribed to the Google Groups > > "nhusers" group. > > To post to this group, send email to [email protected]. > > To unsubscribe from this group, send email to > > [email protected]<nhusers%[email protected]> > > . > > For more options, visit this group at > >http://groups.google.com/group/nhusers?hl=en. > > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
