1

FluentNHibernateを使用したプロジェクトに取り組み始めたところです。

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 に答える