2010-11-18 10 views
4

Hilf mir, bitte, ein Problem zu lösen.Nhibernate linq fetch in Unterklasse

Ich habe Projekt, das Nhibernate und Fluent Nhibernate verwendet. Dort schuf ich eine Basisklasse (es ist nicht wirklich Klassen, aber sie beschreiben meine Situation):

public class Document 
{ 
    public virtual int Id { get; private set; } 
    public virtual Account Acc { get; private set; } 
} 

Und Mapping für sie:

public class DocumentMap: ProfileEntityMap<Document> 
{ 
    public DocumentMap() 
    { 
     Id(m => m.Id); 
     References(m => m.Acc); 
     DiscriminateSubClassesOnColumn("Type"); 
    } 
} 

Dann implementiert ich Unterklasse:

public class PaymentDocument: Document 
{ 
    public virtual Card AccountCard { get; set;} 
} 

Mapping für Klasse PaymentDocument:

public class PaymentDocumentMap : SubclassMap<PaymentDocument> 
{ 
    public PaymentDocumentMap() 
    { 
     References(t => t.AccountCard); 
    } 
} 

Und danach habe ich versuchen, diese Abfrage ausführen:

payments = session.Query<PaymentDocument>() 
    .Fetch(t => t.Acc) 
    .Fetch(t => t.AccountCard) 
    .ToList(); 

Und wenn ich zum ersten Mal holen füge ich nächste Ausnahme erhalten:

Objektverweis nicht auf eine Instanz eines Objekts.

Kann jemand mir antworten, wo ein Problem ist?

+0

Haben Sie einen Breakpoint gesetzt und Ihren Code debuggt? – TalentTuner

+0

Ich Kommentar Reihe mit. Holen (t => t.Acc). Abfrage wird ohne es ausgeführt. Ausnahme tritt in NHibernate-Quelle auf. – Dmitry

Antwort

2

Eigentlich war es ein bug in 3.0.0.Alpha2 behoben. Im Moment funktioniert es mit dem Kofferraum.