如何在NHibernate中映射外键ID列(属性)?

时间:2012-02-20 01:29:49

标签: nhibernate mapping foreign-keys

我有一个关于如何使用NHibernate映射文件映射外键ID的问题。例如。我有以下课程:

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实体不直接引用Topic,它仅通过TopicID引用Topic,如上所示。但似乎NHibernate <many-to-one&gt;映射只会将Topic映射为Post中的实体,但我想要的是TopicID FK,而不是Topic实体。有人可以帮我吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

如果您只想在Post映射中包含TopicID字段值的属性,那么只需将其映射为简单属性:

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

如果您希望将其映射为对象,则使用多对一映射:

<many-to-one name="Topic" column="TopicID" class="Topic"  />

答案 1 :(得分:0)

您可以将TopicID声明为属性,而不是many-to-one

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