Как использовать интерфейс как часть CompositeID в беглом Nhibernate - PullRequest
0 голосов
/ 06 января 2012

У меня проблемы с выяснением того, как сопоставить интерфейс при использовании составного ключа.

Я пытаюсь сделать следующее:

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", который я мог бы использовать, как я могу с ссылками.

Я читаю:

Свободный NHibernate, работа с интерфейсами

Программирование интерфейсов при отображении с помощью Fluent NHibernate

и это позволило мне решить проблему со ссылками, но я не нашел обходного пути для KeyReference. Есть ли что-то очевидное, что я упускаю, потому что я некоторое время гуглял и до сих пор не смог ничего найти.

1 Ответ

0 голосов
/ 06 января 2012

возможно это работает

.KeyReference(x => x.myFoo, attr => attr.Column("fooID").EntityName("bar1"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...