0

複合キーを使用しているときにインターフェイスをどのようにマッピングするかを理解できません。Fluent NhibernateのCompositeIDの一部としてInterfaceを使用する方法

は私がやろうとしていることはこれです:

interface Ifoo 
{ 
    int someInt {get;} 
    int id {get;} 
} 

class bar1: Ifoo 
{ 
    int someInt {get; protected internal set;} 
    int id {get; protected internal set;} 
} 

class bar2: Ifoo 
{ 
    int someInt {get; protected internal set;} 
    int id {get; protected internal set;} 
} 

class someOtherClass 
{ 
    Ifoo myFoo {get; protected internal set;} 
    int id {get; protected internal set;} 
} 

public class someOtherClassMap: ClassMap<someOtherClass> 
{ 
    CompositeId() 
    .KeyReference(x => x.myFoo, "fooID") 
    .KeyProperty(x => x.id, "id"); 

    References(x => x.myFoo) 
    .Class(typeof (foo1)) 
    .Class(typeof (foo2)) 
    .Column("fooID") 
    .Not.Insert() 
    .Not.Update(); 
} 

参照は問題なく動作しますが、私はKeyReferenceが仕事を得ることができず、任意の「に.Classがあるとは思えません"私は参考文献と同じように使うことができます。

私が読んで:

Fluent NHibernate, working with interfaces

Programming to interfaces while mapping with Fluent NHibernate

、それは私が参照の問題を修正しましょう、私はKeyReferenceの周りの仕事を見つけていません。私が逃している明らかな何かがあります、私はしばらくの間、グーグルグーグルをしていて、今まで何も見つけることができませんでした。

答えて

0

これは多分残念ながら、私は流暢の古いバージョンを使用してい

.KeyReference(x => x.myFoo, attr => attr.Column("fooID").EntityName("bar1")) 
+0

を動作しますが、私はその署名に一致するすべての機能を持っていません。 – Zipper

+0

あなたは、あなた自身のバージョンのFNHを反映させるか、拡張する必要があります。私は必要に応じて反射のためのコードを投稿することができます。 – Firo

関連する問題