NHibernate plusieurs-à-Plusieurs
J'ai une base de données existante et je suis en train de créer un NHibernate DAL.
J'ai un problème avec une cartographie sur plusieurs-À-Plusieurs table.
Les tables de Base de données:
studio_Subscribers
studio_Groups
(contient une IList d'Abonnés)studio_Subscribers_Groups
- Plusieurs-À-plusieurs table avec des clés primaires
Le problème est que lorsque je crée un SubscriberGroup
instance et de le remplir avec les Abonnés, ils est enregistré à la studio_Subscribers
table, mais pas à la plusieurs-À-Plusieurs table.
Je ne peux pas comprendre quoi de mal?
studio_Subscribers
table de mapping:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Meridix.Studio.Common"
namespace="Meridix.Studio.Common">
<class name="SubscriberItem" table="studio_Subscribers">
<id name="StorageId" column="Id" unsaved-value="0" access="nosetter.camelcase">
<generator class="identity" />
</id>
<property name="Id" column="DomainId" not-null="true" />
<property name="Subscriber" column="Subscriber" not-null="true" length="50" />
<property name="Description" column="Description" not-null="false" length="100" />
<property name="Type" column="Type" not-null="true" length="40"
type="Meridix.Studio.Data.Repositories.EnumStringTypes.SubscriberTypeEst, Meridix.Studio.Data.Repositories" />
</class>
</hibernate-mapping>
studio_Groups
table de mapping:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Meridix.Studio.Common"
namespace="Meridix.Studio.Common">
<class name="SubscriberGroup" table="studio_Groups">
<id name="StorageId" column="Id" unsaved-value="0" access="nosetter.camelcase">
<generator class="identity" />
</id>
<property name="Id" column="DomainId" not-null="true" />
<property name="Name" column="Name" not-null="true" length="200" />
<property name="Description" column="Description" not-null="false" length="300" />
<bag name="Subscribers" table="studio_Groups_Subscribers" access="nosetter.camelcase">
<key column="GroupId"></key>
<many-to-many column="SubscriberId" class="SubscriberItem" />
</bag>
</class>
</hibernate-mapping>
OriginalL'auteur jmw | 2008-11-25
Vous devez vous connecter pour publier un commentaire.
Ne devriez-vous pas avoir un sac approprié sur votre espace abonné aswell avec un plusieurs-à-plusieurs rapport au groupe?
et peut-être avoir une cascade="save-update" sur votre SubscriberItems collection de sorte que l'épargne, le Groupe va mettre à jour vos enfants avec le rapport de "l'autre côté".
OriginalL'auteur jishi
Je crois que c'est à faire avec la cascade d'options, consultez Ayende post sur elle, et j'imagine qu'avec un peu de Googling, vous pouvez trouver la syntaxe correcte pour aller dans votre hbm fichier. J'utilise couramment-NHibernate donc je ne peux pas vous aider avec le fichier XML.
http://ayende.com/Blog/archive/2006/12/02/NHibernateCascadesTheDifferentBetweenAllAlldeleteorphansAndSaveupdate.aspx
OriginalL'auteur John_