Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como lidar com relacionamentos N para N na hora de construir as classes

Eu ainda não comecei de fato o curso de Nhibernate, meu supervisor de estágio apresentou a ferramenta e acho que ela pode ajudar muito. Pelo que eu entendi eu gero código da linguagem do banco através das classes que eu criei mas como eu faço no caso de tabelas N para N, eu preciso criar uma outra classe, igual eu fiz no meu modelo relacional do banco? E eu não preciso colocar as chaves primárias como propriedade correto?

1 resposta
solução!

Olá Guilherme,

não precisaria criar uma classe para a tabela intermediária, no NHibernate você consegue criar um relacionamento many to many apenas com listas e configurações.

Vamos supor que você tem a classe Aluno e Curso. Cada aluno faz vários cursos e cada curso tem vários alunos. Criaria a classe para estes dois, cada um contendo uma lista para o outro:

class Aluno
{
  // propriedade de id ...
  IList<Curso> Cursos { get; private set; }

}

class Curso
{
  // propriedade de id ...
  IList<Aluno> Alunos { get; private set; }
}

Depois para virar um many to many você configura nos xmls de mapeamento:

<class name="Aluno">
    <id ....>
    <bag name="Cursos" table="Aluno_x_Curso">
        <key column="alunoId"/>
        <many-to-many class="Curso" column="cursoId"/>
    </bag>
</class>

<class name="Curso">
    <id ....>
    <bag name="Alunos" table="Aluno_x_Curso" inverse="true">
        <key column="cursoId"/>
        <many-to-many class="Aluno" column="alunoId"/>
    </bag>
</class>