2010-11-18 5 views
4

도와주세요. 한 가지 문제를 해결하십시오.하위 클래스에서 Nhibernate linq 가져 오기

나는 Nhibernate와 Fluent Nhibernate를 사용하는 프로젝트를 가지고있다. 그것을 위해

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

및 매핑 :이 나는 하나의 기본 클래스 을 (그렇지 실제 클래스,하지만 그들은 내 상황을 설명) 생성

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

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

은 그 때 나는 서브 클래스를 구현

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(); 

을 그리고 내가 처음 삽입 할 때 내가 옆에 예외를 얻을 가져 오기 : 개체의 인스턴스로 설정되지 않았습니다

Object 참조.

어디에서 문제를 해결할 수 있습니까?

+0

중단 점을 설정하고 코드를 디버그 해 봤습니까? – TalentTuner

+0

.Fetch (t => t.Acc)로 행에 주석을 답니다. 질의는 그걸로 실행됩니다. 예외는 NHibernate 소스에서 발생합니다. – Dmitry

답변

2

실제로는 bug이 3.0.0.Alpha2로 고정되었습니다. 지금 그것은 트렁크와 함께 작동합니다.

관련 문제