>From manual... "Since a bag permits duplicate element values and has no index column, no primary key may be defined. NHibernate has no way of distinguishing between duplicate rows. NHibernate resolves this problem by completely removing (in a single DELETE) and recreating the collection whenever it changes. This might be very inefficient."
http://www.nhforge.org/doc/nh/en/index.html#performance-collections-taxonomy ________________________________________ Från: [email protected] [[email protected]] för graphicsxp [[email protected]] Skickat: den 5 oktober 2009 17:14 Till: nhusers Ämne: [nhusers] nhibernate deletes all my record before inserting Hi, I have an entity which holds a collection of other entites. In the database this tranlates to 3 tables. [BuzzUser] {BuzzUserID, Name} [BuzzUserArt] {BuzzUserArtID, Title} [BuzzUserFavourites]{BuzzUserFavouritesID, BuzzUserID, BuzzUserArtID} In the mapping of BuzzUser, I've mapped the third table to a bag : <bag name="Favourites" table="BuzzUserFavourites" lazy="false"> <key column="BuzzUserID" /> <many-to-many class="BuzzArt.BuzzUserArt, BuzzArt" column="BuzzUserArtID" /> </bag> Now if I add a BuzzUserArt entity to the collection Favourites : if (! buzzUser.Favourites.Contains(buzzUserArt)) buzzUser.Favourites.Add(buzzUserArt); _buzzUserDao.SaveOrUpdate(buzzUser); Then NHibernate deletes all the favourites associated to this BuzzUser : DELETE FROM BuzzUserFavourites WHERE BuzzUserID = '306170f2-737f-402c-9731-9c63013c32db' and then it adds them all again, including the one I wanted to add initially : INSERT INTO BuzzUserFavourites (BuzzUserID, BuzzUserArtID) VALUES (@p0_0, @p1_0) INSERT INTO BuzzUserFavourites (BuzzUserID, BuzzUserArtID) VALUES (@p0_1, @p1_1) It seems inefficient to me. What am I doing wrong ? Thanks --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
