Je souhaite suivre une liste d'objets racine qui ne sont pas contenus par un élément. Je veux que le pseudo-code suivant au travail:NHibernate: Collection racine avec un objet racine
using (session1 = [...]) {
IList<FavoriteItem>list = session1.Linq<FavoriteItem>().ToList();
}
list.Add(item1);
list.Add(item2);
list.Remove(item3);
list.Remove(item4);
var item5 = list.First(i => i.Name = "Foo");
item5.Name = "Bar";
using (session2 = [...]) {
session2.Save(list);
}
Cela devrait insérer automatiquement Item1 et item2, supprimer item3 et item3 et mettre à jour item5 (c.-à-je ne veux pas appeler sesssion.SaveOrUpdate() pour tous les éléments séparément.
est-il possible de définir une entité pseudo qui n'est pas associée à une table par exemple, je veux définir les propriétés de collection favoris de la classe et la carte 2 de celui-ci et que je veux écrire du code comme ceci:
using (session1 = [...]) {
var favs = session1.Linq<Favorites>();
}
favs.FavoriteColors.Add(new FavoriteColor(...));
favs.FavoriteMovies.Add(new FavoriteMovie(...));
using (session2 = [...]) {
session.SaveOrUpdate(favs);
}
FavoriteCoulors et FavoriteMovies sont les seules propriétés de la classe Favorites et sont de type IList et IList. Je veux seulement persister ces deux propriétés de collection mais pas la classe de favoris. En fait, je veux un objet IPersistentCollection qui suit ajoute et supprime qui n'appartient à aucune entité parente et qui lui-même (ce qui arrive aux propriétés de collection des entités, seulement dans mon cas je n'ai pas d'entité parente). Cela fonctionne parfaitement bien si les collections appartiennent à une entité auquel cas je peux ajouter et supprimer des éléments entre deux sessions.
Toute aide est très appréciée.
L'exigence selon laquelle il doit fonctionner entre les sessions n'est pas claire d'après votre question. Vous devriez ajouter ceci (et d'autres exigences cachées) à votre question pour éviter que les gens passent du temps à donner des réponses inutiles à une question incomplète. –