Je carte élément dans mon mapping -NHibernate: ne peut pas ajouter des éléments à la carte élément
<component name="Resources">
<map name="Inner" table="SomeTable" lazy="false" fetch="join" access="field.lowercase-underscore">
<key column="Id"/>
<index column="IndexId" type="String"/>
<composite-element class="SomeResource">
<property name="Name"/>
</composite-element>
</map>
</component>
Je veux ajouter des éléments dans la SomeTable de la manière suivante -
var ent = new Entity();
ent.Resources.Add("key1", new SomeResource());
var saved = Session.SaveOrUpdate(ent);
Session.Session.Flush();
Session.Session.Clear();
var newEntity = new Entity {Id = saved.Id};
ent.Resources.Add("key2", new SomeResource());
Session.SaveOrUpdate(newEntity); // here nHib generates DELETE FROM SomeTable WHERE Id = saved.Id
Session.Session.Flush();
Session.Session.Clear();
Je veux avoir elements "key1" & "key2" dans le SomeTable après l'exécution, comment cela peut-il être fait? .. Actuellement, nHib supprime tous les éléments avec l'ID spécifié de la SomeTable avant la deuxième sauvegarde.
Merci pour votre réponse. Le problème est que je ne veux pas une entité complètement nouvelle, je veux juste ajouter un nouvel élément à une collection de carte interne de l'entité existante. – Dmitry
alors pourquoi créez-vous une nouvelle entité? vous venez d'ajouter le nouvel élément à l'objet "ent". – Simone
Eh bien, je ne peux pas). J'ai simplifié beaucoup l'exemple ci-dessus, dans mon application je n'ai pas d'objet "ent" .. – Dmitry