2010-02-26 10 views
0

Vous ne savez pas exactement ce que je fais de manière incorrecte avec NHibernate. J'ai deux fichiers de mappage mappés à deux tables. Je peux insérer des données via le mappage dans la base de données, mais l'appel du code ci-dessous renvoie 0, même si je peux voir une ligne enfant remplie dans la table avec la clé étrangère correcte. Est-ce un problème de chargement paresseux? Merci.La collection NHibernate ne charge pas avec des données, mais les données sont insérées dans la base de données

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

Voici mes fichiers de mappage.

classe 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> 

classe 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> 

+0

Est-ce supposé être une relation plusieurs-à-plusieurs? – Steve

Répondre

0

Merci pour avoir votre réponse Steve, j'ai réussi à le comprendre bien. La correspondance de clé étrangère était incorrecte .. ci-dessous a corrigé le problème et maintenant la collection est en cours de chargement.

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