我有一个关于如何使用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实体。有人可以帮我吗?
非常感谢!
答案 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" />