0

複合キーを使用しているときにインターフェイスをマップする方法がわかりません。

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

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、インターフェースの操作

Fluent NHibernate でマッピングしながらインターフェイスにプログラミングする

これで参照の問題を修正できましたが、KeyReference の回避策は見つかりませんでした。私が見逃している明らかなものはありますか?私はしばらくの間グーグルで検索してきましたが、これまでのところ何も見つかりませんでした.

4

1 に答える 1

0

これは多分うまくいく

.KeyReference(x => x.myFoo, attr => attr.Column("fooID").EntityName("bar1"))
于 2012-01-06T15:14:41.253 に答える