2010-09-01 54 views
0

FNH映射中的新SetAttribute()是什么?我需要设置子我鉴别值,因为字符串是不优选 - old post如何使用FNH为子类设置歧视列类型?

与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 ---> System.FormatException:输入字符串格式不正确。

我需要设置SetAttribute("discriminator-value", "-1");但是没有这样的方法。

编辑1个

问题:如何设置区分列类型与FNH子类?

回答

2
public class PowerStationMap : SubclassMap<PowerStation> 
{ 
    public PowerStationMap() 
    { 
     DiscriminatorValue((int)1); 
     Map(x => x.ElectricityProduction); 
    } 
} 

我终于找到了我的答案,这是

SubclassMap<T>::DiscriminatorValue(object discriminatorValue); 
1

Fluent NHibernate 1.0 Release Notes

删除的setAttribute - 的setAttribute是一个权宜之计,让人们使用功能NHibernate时,我们不支持他们所需要的属性。现在我们已经花了很长时间来支持流畅界面中的所有主要属性,所以你不应该再需要这个了。如果有需要,我们已经错过了任何属性,让我们知道(甚至更好,给我们一个拉请求/补丁)

+0

谢谢,但这没有帮助...我改变了我的问题 – 2010-09-01 15:01:56

相关问题