【发布时间】:2013-07-18 16:37:19
【问题描述】:
我对 nHibernate 有点陌生,特别流利,我在映射类 A 扩展类 B 的关系时遇到问题,但不能保证给定的 A 也是B。这是迄今为止结构的一个想法(并且可以提出建议):
public class User
{
public virtual Guid Id;
public virtual string UserName;
public virtual string HashedPassword;
//...
}
public class Student : User
{
public virtual Guid UserId;
public virtual School School;
public virtual float GPA;
}
public class Teacher : User
{
public virtual Guid UserId;
public virtual School School;
public virtual string ClassName;
}
所以我希望拥有可以使用的 Teacher 和 Student 对象,但我也希望能够跟踪它们以进行成员身份验证(因此是 User 基类)。
所以两个问题:
这是一种合理的方式来做我想做的事吗?
如果是这样,如何使用 Fluent nHibernate 进行映射?
【问题讨论】:
-
为什么 User 是基类而不是接口?在同一个类(Id 和 UserId)上看到 2 个 Id 看起来很奇怪#
-
@Firo 是的,实际上我已经把它变成了一个抽象类(因为我想把成员逻辑保留在那里)并取出子类上的 UserIds(我只是把它放在那里,因为我认为 NHibernate 会去需要它)
标签: c# .net nhibernate orm fluent-nhibernate