2
難以理解使用Fluent NHibernate實現具有通用存儲庫的子類的最佳方式。流利的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 2010-04-27 03:41:11
@zoidbeck請求詳細說明最後的評論,鏈接或示例? – mxmissile 2010-04-27 07:32:42