2010-11-18 6 views
4

助けてください、一つの問題を解決してください。サブクラスでNhibernate linqをフェッチ

私はNhibernateとFluent Nhibernateを使用するプロジェクトを持っています。

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

そして、それのためのマッピング:あり私は1つの基本クラス を(それが本当のクラスではありませんが、彼らは私の状況を説明)作成

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

その後、私はサブクラスを実装:

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

PaymentDocumentクラスのマッピング:

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

その後、私はこのクエリを実行してみてください。

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

そして私は最初、私は次の例外を取得フェッチ挿入:オブジェクトのインスタンスに設定されていない

オブジェクト参照を。

誰かが私に答えても問題はありませんか?

+0

ブレークポイントを設定してコードをデバッグしましたか? – TalentTuner

+0

私は行を.Fetch(t => t.Acc)でコメントします。それを使ってクエリが実行されます。例外はNHibernateソースで発生します。 – Dmitry

答えて

2

実際には、bugは3.0.0.Alpha2で修正されました。今はトランクで動作します。