2

次のようなクラスがあるとします...

public class SomeClass<T> where T : ISomeConstrainingInterface
{
    public T MyPropertyOfTypeT {get;set;}
    public int SomeIntProp {get;set;}
    public string SomeStringProp {get;set;}
}

ここで、T はかなり小さな限定セット (たとえば 5 または 6 種類) である可能性があります。

nHibernate でこのクラスをマップするための最良かつ最も効率的な方法は何ですか? (流暢なNHibernateを使用)

4

1 に答える 1

0

これにより、SomeClass の concreate 型ごとに個別のテーブルが作成されるため、さまざまな Id 型に問題はなく、外部キーが可能です。SomeClass はインターフェイスを実装して、すべてをクエリして一般的に処理できるようにする必要があります。

public abstract class SomeClassMapBase<T> : ClassMap<SomeClass<T>>
{
    public SomeClassMapBase()
    {
        Map(x => x.SomeIntProp);
        Map(x => x.SomeStringProp);
    }
}

public class SomeClassReferencedClassMap : SomeClassMapBase<ReferencedClass>
{
    public SomeClassReferencedClassMap()
    {
        CompositeId()
            .KeyReference(x => x.Referenced, "Refernece_id");
    }
}
于 2015-10-14T15:09:12.910 に答える