NHibernate集合不加载数据,但数据被插入数据库

时间:2010-02-26 11:08:37

标签: nhibernate one-to-many mappings

不确定我在NHibernate上做错了什么。我有两个映射文件映射到两个表。我可以通过映射插入数据到数据库,但调用下面的代码返回0,即使我可以看到在表中填充正确外键的子行。这是一个延迟加载问题吗?感谢。

var result = session.Get<AnnualReport>(annualReport.ReportID);
Assert.AreEqual(result.MonthlyReports.Count, 1);  

这是我的映射文件。

AnnualReport课程

<joined-subclass name="AnnualReport" extends="Report" table="AnnualReports" >  

<key column="ReportID"/>

<property name="MonthlySendDate" /> 

<bag name="MonthlyReports" lazy="true" inverse="true">
  <key column="ReportID" />
  <one-to-many class="MonthlyReport"/>
</bag>

<many-to-one name="Client" column="ClientID" not-null="true" /></joined-subclass>

MonthlyReport课程

 <joined-subclass name="MonthlyReport" extends="Report" table="MonthlyReports">

<key column="ReportID"/>
<property name="SentDate" />

<many-to-one name="AnnualReport" class="AnnualReport" column="AnnualReportID"  not-null="true"/>

<bag name="MarketReports" cascade="all">
  <key column="MonthlyReportID" />
  <one-to-many class="MarketReport"/>
</bag>

1 个答案:

答案 0 :(得分:0)

感谢您对Steve的回应,我已经成功解决了这个问题。外键映射不正确..下面修复了问题,现在正在加载。

<bag name="MonthlyReports" lazy="true" inverse="true">
  <key column="AnnualReportID" />
  <one-to-many class="MonthlyReport"/>
</bag>