Avoir de la difficulté à comprendre la meilleure façon d'implémenter des sous-classes avec un référentiel générique en utilisant Fluent NHibernate.Référentiel NHibernate avec sous-classes
J'ai une classe de base et deux sous-classes, disent:
public abstract class Person
{
public virtual int PersonId { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
}
public class Student : Person
{
public virtual decimal GPA { get; set; }
}
public class Teacher : Person
{
public virtual decimal Salary { get; set; }
}
Mes Mappages sont les suivantes:
public class PersonMap : ClassMap<Person>
{
public PersonMap()
{
Table("Persons");
Id(x => x.PersonId).GeneratedBy.Identity();
Map(x => x.FirstName);
Map(x => x.LastName);
}
}
public class StudentMap : SubclassMap<Student>
{
public StudentMap()
{
Table("Students");
KeyColumn("PersonId");
Map(x => x.GPA);
}
}
public class TeacherMap : SubclassMap<Teacher>
{
public TeacherMap()
{
Table("Teachers");
KeyColumn("PersonId");
Map(x => x.Salary);
}
}
-je utiliser un référentiel générique pour sauvegarder/retreive/mettre à jour les entités et cela fonctionne très bien - à condition de travailler avec Repository - où je sais déjà que je travaille avec des étudiants ou que je travaille avec des enseignants.
Le problème que je rencontre est le suivant: Que se passe-t-il quand j'ai un ID et que je dois déterminer le TYPE de personne? Si un utilisateur arrive sur mon site en tant que PersonId = 23, comment puis-je déterminer quel type de personne il s'agit? NHibernate gérera ceci pour vous.
C'est au-delà impressionnant. Chaque jour je joue avec Fluent NHibernate (ou simplement NHibernate), j'apprends quelque chose de nouveau. Merci! – reallyJim
@zoidbeck plaider sur le dernier commentaire, lien ou exemple? – mxmissile