2009-10-08 6 views
1

Je rencontre des difficultés pour enregistrer un objet dans ma base de données à l'aide de NHibernate.Comment empêcher NHibernate de créer des enregistrements en double pour les objets référencés

Mon code ressemble à ceci:

Image image = new Image { Url = 'test.jpg' }; 
Product product1 = new Product { Name = 'MyProduct', Image = image }; 
Product product2 = new Product { Name = 'MyProduct2', Image = image }; 

MySession.Save(product1); // This also creates an Image record 
MySession.Save(product2); // This creates another Image record even tho the data is exactly the same 

Je voudrais éviter que l'image soit créé deux fois. Existe-t-il une solution NHibernate standard ou dois-je créer une méthode Save() personnalisée pour la classe Product?

+0

Publiez vos correspondances s'il vous plaît –

+0

Les correspondances courantes sur la classe de produit sont: Carte (x => x.Nom); Références (x => x.Image) .Cascade.SaveUpdate(); –

+0

Avez-vous essayé ceci sans l'initialisation automatique? product1.Image = image –

Répondre

0

Après une longue recherche, j'ai trouvé quelque chose à propos de l'implémentation de la méthode Equals() pour mes classes d'entités afin que NHibernate puisse les comparer. Peut-être que c'est la solution à mon problème.

Questions connexes