我有一個具有以下字段的表稱爲AdministratorPrivilages:NHibernate的ReferencesAny拉回了錯誤的類型
- ID
- 列表項
- 成員Id
- 價值
- MemberType
現在,成員可以是兩種類型(Enterprise a nd Express)。企業成員居住在企業表中。特快成員住在快車隊表中。我試圖像這樣做我的流利映射。
public class AdministratorPrivilegesMapping : ClassMap<AdministratorPrivileges>
{
public AdministratorPrivilegesMapping()
{
Id(x=>x.Id);
Map(x => x.Value).Column("Value");
ReferencesAny(x => x.Member)
.EntityTypeColumn("MemberType")
.EntityIdentifierColumn("MemberId")
.IdentityType<Int32>()
.AddMetaValue<ExpressMember>("Express")
.AddMetaValue<Member>("Enterprise");
}
}
兩個成員表都具有帶升序值的整數ID。當我嘗試撤回與企業成員10相關的權限時,我將獲得與Express Member 10相關的權限集。其他兩個表都映射到舊學校hbm映射文件。
我錯過了一些明顯的東西嗎?我正在使用NHibernate 2.1和FluentNhibernate 1.1