Fluent-NHibernate, укажите свойство FK в однонаправленном отношении - PullRequest
0 голосов
/ 03 ноября 2011

При сопоставлении отношения 1: n автоматически создается столбец FK, в приведенном ниже примере столбец Author_id в таблице Book. Но как мне сделать это значение доступным как свойство сущности Book? Если я создаю свойство int AuthorID, можно ли заставить NHibernate использовать это свойство в качестве внешнего ключа, чтобы я мог получить к нему программный доступ?

public class Author
{
  public IList<Book> Books { get; set; }
}

//AuthorMap:
HasMany(x => x.Books);

1 Ответ

0 голосов
/ 04 ноября 2011

Как я понял из вопроса, вам нужны двунаправленные отношения. Просто добавьте свойство Author в книгу класса

public virtual Author Author {get; set;}

И отобразить его как ссылку в файле Book Mappping

Reference(x => x.Author);

Можно указать одно и то же имя столбца FK для обоих сопоставлений, чтобы обеспечить связь одного столбца таблицы.

Если вам действительно нужно иметь int AuthorID в книге, создайте это свойство и установите для него Not.Update и Not.Insert, просто сделайте его доступным только для чтения.

...