我试图从数据库中的第二个表加载列作为使用NHibernate的模型上的属性 . 我正在使用XML映射文件并尝试使用join标记 . 当我构建并尝试运行代码时,我收到以下错误:
命名空间'urn:nhibernate-mapping-2.2'中的元素'join'在命名空间'urn:nhibernate-mapping-2.2'中具有无效的子元素'key' . 预期可能元素的列表:'属性,多对一,组件,动态组件,任何,映射,集,列表,包,idbag,数组,原始数组,sql-insert,sql-update,sql-delete '在命名空间'urn:nhibernate-mapping-2.2' .
以下是映射文件的片段:
<class name="Article" table="article">
<id name="Id" column="articleID" unsaved-value="-1" type="Int32">
<generator class="identity" />
</id>
<property name="ClientId" column="accountID" type="Int32" />
<property name="PublicNumber" column="articleNum" />
<join table="articleLanguage">
<key column="accountID" />
<key column="articleNum" />
<property name="Question" />
<property name="LanguageId"/>
</join>
</class>
我究竟做错了什么?
1 回答
只有当根实体(Article)具有复合键时,这种方法才有效:
我明白这不是你喜欢的 . 但是,如果有两列代表关系,那就没有别的办法了 . 因为能够找到恰好一行加入...我们需要两个键 .