2010-09-01 2 views
0

Что нового SetAttribute() в картировании FNH? Мне нужно установить мое значение дискриминатора на подкласса, потому что строка не является предпочтительным - 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");, но такого метода нет.

EDIT 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 была затычка мерой, чтобы позволить людям использовать Fluent NHibernate, когда мы не поддерживаем атрибуты, необходимые им. Теперь мы подробно рассмотрели все основные атрибуты в свободном интерфейсе, поэтому вам больше не нужно этого. Если есть какие-то атрибуты, которые необходимо, что мы пропустили, дайте нам знать (или даже лучше, пришлите нам запрос тянуть/патч)

+0

спасибо, но это не помогает ... Я изменил свой вопрос –

Смежные вопросы