【发布时间】:2016-01-07 01:56:15
【问题描述】:
我有以下数据库结构(无法更改):
Users
- UserID (int)
- UserType (varchar)
- UserDetailsID (int)
Individual
- IndividualID (int)
...
Organisation
- OrganisationID (int)
...
Users 表中的 UserDetailsID 列指的是个人或组织,具体取决于存储在 UserType 列中的值(“个人”、“组织”)。 绝对不是最好的数据库设计,但这是我们目前必须使用的。
这是我们映射类的开始:
public class UserMap : ClassMap<User>
{
public UserMap()
{
Table("Users");
LazyLoad();
Id(x => x.UserID).GeneratedBy.Identity().Column("UserID");
}
}
我要做的是根据 UserType 列中的值将 User 实体中的 UserDetailsID 映射到正确的表/实体。 因此,如果 UserType == “个人”,它应该映射到个人,如果 UserType == “组织”,它应该映射到组织。 使用 Fluent NHibernate 可以做到这一点吗?那该怎么做呢?
【问题讨论】: