2010-11-18 3 views
4

Помогите мне решить одну проблему.Nhibernate linq fetch в подклассе

У меня есть проект, который использует Nhibernate и Fluent Nhibernate. Там я создал один базовый класс (это не реальные классы, но они описывают мою ситуацию):

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

и картографирование для него:

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. Прямо сейчас он работает с багажником.