FNH映射中的新SetAttribute()
是什么?我需要在子类上设置我的鉴别器值,因为String不是首选 - old post
NH 2.1.2.4000,FNH 1.1.0.689
public class BaseBuildingMap : ClassMap<BaseBuilding>
{
public BaseBuildingMap()
{
Id(x => x.Id);
DiscriminateSubClassesOnColumn<int>("BuildingType", -1);
}
}
public class PowerStationMap : SubclassMap<PowerStation>
{
public PowerStationMap()
{
Map(x => x.ElectricityProduction);
}
}
NHibernate.MappingException:无法将鉴别器值格式化为实体的SQL字符串Model.Test.PowerStation ---&gt; System.FormatException:输入字符串的格式不正确。
我需要设置SetAttribute("discriminator-value", "-1");
,但没有这样的方法。
编辑1
问题:如何设置子类与FNH的区别列类型?
答案 0 :(得分:2)
public class PowerStationMap : SubclassMap<PowerStation>
{
public PowerStationMap()
{
DiscriminatorValue((int)1);
Map(x => x.ElectricityProduction);
}
}
我终于找到了回答,这是
SubclassMap<T>::DiscriminatorValue(object discriminatorValue);
答案 1 :(得分:1)
来自Fluent NHibernate 1.0 Release Notes
删除了SetAttribute - SetAttribute是一种权宜之计,当我们不支持他们需要的属性时,允许人们使用Fluent NHibernate。我们现在已经花了很长时间来支持流畅界面中的所有主要属性,因此您不再需要它。如果您需要我们遗漏的任何属性,请告诉我们(或者更好的是,向我们发送拉取请求/补丁)