J'ai des problèmes avec quelque chose qui (je pense) devrait être simple, mais ne peut pas trouver d'informations claires.Problème lors de l'utilisation du module Session.Get de nHibernate 2.0 <T> sur une classe avec un ID composite
Dans le scénario où j'ai trois tables, décrivant un domaine dans lequel une personne peut avoir plus d'un emploi:
Personne - a personID, Nom
Job - a JobId, JobName
PersonJob - a personID , JobId, YearsOfEmployment
Remarque: Dans mon modèle d'objet, j'ai des entités représentant chaque table. J'ai cette troisième entité pour représenter la relation personne/travail car il y a des méta-données utiles là-bas (YearsOfEmployment) et n'est pas simplement une simple table de jointure. Donc, si je connaissais le PersonId et le JobId, y a-t-il un moyen simple pour moi d'utiliser la session et de retourner un objet correspondant à ces Ids? Ou, en d'autres termes, puisque je connais déjà les clés primaires, il y a un moyen simple de transformer le SQL "SELECT YearsOfEmployment FROM PersonJob où PersonId = 1 AND JobId = 1" en quelque chose comme:
var keys = new {PersonId=1, JobId=2};
PersonJob obj = Session.Get<PersonJob>(keys);
BTW: cartes ressemblerait à quelque chose comme ceci:
<class name="Person" table="dbo.Person" lazy="true">
<id name="PersonId">
<generator class="native"/>
</id>
<property name="Name"/>
</class>
<class name="Job" table="dbo.Job" lazy="true">
<id name="JobId">
<generator class="native"/>
</id>
<property name="JobName"/>
</class>
<class name="PersonJob" table="dbo.PersonJob" lazy="true">
<composite-id>
<key-property name="PersonId"></key-property>
<key-property name="JobId"></key-property>
</composite-id>
<property name="YearsOfEmployment"/>
</class>
vaudraient peut-être ajouter l'ensemble de la classe PersonJobKey que je suis en train d'essayer de savoir quelle classe je dois passer outre. –