Отображение NHibernate: свойство объекта, соответствующее наличию записи в другой таблице - PullRequest
0 голосов
/ 28 февраля 2011

Я почти уверен, что можно сделать с помощью NHibernate, но я хотел бы обсудить это с сообществом.

Если у меня есть сущность Foo:

public class Foo
{
  public int Id { get; set; }
  public string Name { get; set; }
  public bool HasRegistered { get; set; }
}

Я бы хотел, чтобы свойство HasRegistered было истинным, если в таблице Actions имеется соответствующая запись (т.е. в качестве внешнего ключа указан Id Foo, а в другом поле - определенный код 'BLAH'), и чтобыбыть ложным, если его нет.

Так, например, HasRegistered будет истиной, если существует запись Action со следующими полями:

  • FooId (равно Foo's Id)
  • Code (равно значению BLAH)

Возможно ли такое отображение?

1 Ответ

0 голосов
/ 28 февраля 2011

Насколько мне известно о NHibernate, это невозможно с помощью функции "прозрачного" отображения, такой как свойство или, как вы можете сделать с сумками os комплектами и т. д. Самый простой способ для этого - использовать формулу над этим свойством и сделать это свойство "неизменяемым", чтобы свойство действительно включалось в сценарии вставки / обновления,надеюсь, это поможет.

, так что это может быть примером:

<property 
      name="HasRegistered" 
      formula="sql formula to evaluate" 
      insert="false" update="false"/>

, поскольку источником дополнительной информации о функциях отображения nhibernate о (в данном случае свойство ) являетсяследующее: Отображение NHibernate: свойство

...