Как сопоставить столбец идентификатора внешнего ключа (свойство) в NHibernate? - PullRequest
2 голосов
/ 20 февраля 2012

У меня есть вопрос о том, как сопоставить идентификатор внешнего ключа с файлом сопоставления NHibernate.например.У меня есть следующие классы:

class Topic {
  public long ID {get; set;}  
  public string Name {get; set;}  
}  

class Post {  
  public long ID {get; set;}  
  public string Title {get; set;}  
  public string Content {get; set;}  
  public long TopicID {get; set;} // This is the FK refers to the Topic entity
}  

Сущность Post не ссылается на тему напрямую, она только ссылается на тему по TopicID, как показано выше.Тем не менее, кажется, что сопоставление NHibernate <many-to-one> будет отображать только тему как сущность в Посте, но я хочу, чтобы это был TopicID FK, а не сущность темы.Может ли кто-нибудь помочь мне в этом?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Если вы просто хотите, чтобы в вашем отображении Post было свойство, содержащее значение поля TopicID, просто сопоставьте его как простое свойство:

<property name="TopicID" column="TopicID" type="long" />

Если вы хотите, чтобы он отображался как объект, используйте сопоставление многие-к-одному:

<many-to-one name="Topic" column="TopicID" class="Topic"  />
0 голосов
/ 20 февраля 2012

Вы можете просто объявить TopicID как свойство, а не many-to-one.

<property name="TopicID" column="TopicID" type="Int64" />
...