複合キーを使用しているときにインターフェイスをマップする方法がわかりません。
私がやろうとしているのはこれです:
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();
}
References は問題なく動作しますが、KeyReference を動作させることができず、References のように使用できる ".Class" がないようです。
私は読む:
Fluent NHibernate でマッピングしながらインターフェイスにプログラミングする
これで参照の問題を修正できましたが、KeyReference の回避策は見つかりませんでした。私が見逃している明らかなものはありますか?私はしばらくの間グーグルで検索してきましたが、これまでのところ何も見つかりませんでした.