Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate父/子映射不';t填充袋_C#_Nhibernate_Nhibernate Mapping - Fatal编程技术网

C# NHibernate父/子映射不';t填充袋

C# NHibernate父/子映射不';t填充袋,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我环顾四周,找到了很多关于如何绘制儿童地图的例子,但我遗漏了一些东西。我无法使下面的映射工作 表1: ORDERID RAW No HISTORYID RAW No 映射: 映射: 除了OrderHistoryBag及其关联的OrderHistorycollection始终为空集合外,所有内容都可以正常编译和运行 我想简短的故事是,我试图将父类中的HistoryId映射到子类中的HistoryId,两者都不是实体上的主键。 My NHibernate程序集是v1.2.1.400(不问)

我环顾四周,找到了很多关于如何绘制儿童地图的例子,但我遗漏了一些东西。我无法使下面的映射工作

表1:

ORDERID RAW No
HISTORYID   RAW No
映射:

映射:

除了OrderHistoryBag及其关联的OrderHistorycollection始终为空集合外,所有内容都可以正常编译和运行

我想简短的故事是,我试图将父类中的HistoryId映射到子类中的HistoryId,两者都不是实体上的主键。
My NHibernate程序集是v1.2.1.400(不问)。

您需要指定用于使用property ref连接到historyItems的属性

<property name="HistoryId" />
<bag name="OrderHistoryBag" lazy="false" table="OrderHistory" cascade="none">
  <key column="HistoryId" property-ref="HistoryId"/>
  <one-to-many class="OrderHistory" not-found="ignore" />
</bag>


这正是我想要的东西。不幸的是,当我尝试运行时,我在加载xml时遇到一个错误,声明“property ref未定义。查看文档,property ref在包上也无效。我太有希望了!抱歉,我将property ref放在了错误的标记中,现已修复。非常感谢,但我仍然得到一个“property ref未定义”“将其放在关键元素上时出错。有一件事我没有提到是NH 1.2.1(最近编辑的原始帖子)。AFAIK property ref是在NH 2.0中实现的。如果可能,我会升级到NH 3..3.1,如果可能:D。再次感谢您的回复。
public virtual IList<OrderHistory> OrderHistoryBag { get; set; }
public virtual Collection<OrderHistory> OrderHistory { get; set; }
HISTORYSEQ  NUMBER(6,0) No
HISTORYID   RAW Yes
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <class name="OrderHistory" lazy="false" table="OrderHistory" polymorphism="explicit">
    <id name="HistorySequence" column="HistorySeq" type="Int32">
      <generator class="sequence">
        <param name="sequence">S_Hist</param>
      </generator>
    </id>
    <many-to-one name="Order" class="Order" column="HistoryId" not-null="true" cascade="none" lazy="false" />
  </class>
</hibernate-mapping>
public virtual Order Order { get; set; }
<property name="HistoryId" />
<bag name="OrderHistoryBag" lazy="false" table="OrderHistory" cascade="none">
  <key column="HistoryId" property-ref="HistoryId"/>
  <one-to-many class="OrderHistory" not-found="ignore" />
</bag>