1

我刚刚开始使用 Fluent NHibernate 开展一个项目。

使用 Fluent NHibernate 映射以下类的正确方法是什么?

public class DurationUnit
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
}

public class Duration
{
    public virtual int Value { get; set; }
    public virtual DurationUnit Unit { get; set; }
    public virtual int DurationInMinutes { get{ throw new NotImplementedException(); } }
}

public class Event
{
    public virtual int Id { get; set; }
    public virtual String Name { get; set; }
    public virtual Duration MaxDuration { get; set; }
    public virtual Duration MinDuration { get; set; }
}

我最初的方法是为 DurationUnit 和 Event 声明一个 ClassMap,并将 Duration 作为 Event 的一个组件。尝试此操作时,我收到了异常:

NHibernate.MappingException:无法确定类型:Entities.DurationUnit

4

1 回答 1

2

如果您的映射看起来像这样

public EventMap()
{
    Component(x => x.MaxDuration, c =>
    {
        c.Map(x => x.Value, "MaxDurationValue");
        c.Reference(x => x.Unit, "MaxDurationUnitId");
    });
}

然后确保class DurationUnitMap是公开的并被添加到配置中

于 2012-09-19T09:51:49.420 回答