2
Fluent NHibernate를 사용하는 일반 저장소로 하위 클래스를 구현하는 가장 좋은 방법을 이해하는 데 약간의 어려움이 있습니다. 다음과 같이 Fluent NHibernate 하위 클래스를 가진 저장소
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; }
}
내 매핑
은 다음과 같습니다 : 내가 가지고있는는 기본 클래스와 두 개의 서브 클래스는, 말
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);
}
}
내가 엔티티를 저장/retreive/업데이트 할 일반적인 저장소를 사용하고, 위대한 작품 - 내가 Repository에서 일하고 있다면 - 이미 학생과 일하고 있거나 교사와 일하고 있다는 것을 이미 알고있는 곳.
내가 겪는 문제점은 다음과 같습니다. ID를 가지고 사람의 유형을 결정해야 할 때 어떻게됩니까? 사용자가 PersonId = 23으로 내 사이트에 방문하면 어떤 유형의 사람인지 파악하려면 어떻게해야합니까?
그것은 두렵다. 매일 Fluent NHibernate (또는 단지 NHibernate)로 게임을하게됩니다. 새로운 것을 배웁니다. 감사! – reallyJim
@zoidbeck pleas 마지막 코멘트, 링크 또는 예문에 대해 자세히 설명해 주시겠습니까? – mxmissile