2013-07-27 2 views
0

Учитывая код:Как запросить отношения «один ко многим» в NHibernate?

public class Audit { 
    public Audit { 
     Details = new List<AuditDetail>(); 
    } 
    public virtual IList Details { get; set; } 
    public virtual string SourceFile { get; string } 
    public virtual DateTime Timestamp { get; set; } 
    public virtual long Id { get; set; } 
} 

public class AuditDetail { 
    public virtual string CardNumber { get; set; } 
    public virtual string Message { get; set; } 
    public virtual Audit MyAudit { get; set; } 
    public virtual long Id { get; set; } 
} 

Как запросить через эти один-ко-многим, чтобы вернуть список объектов, с Исходных_файлами CardNumber и значением Message фильтрованный, например, с помощью Timestamp с помощью LINQ? Заранее спасибо.

ответ

2

Конструктор для вашего класса аудита не имеет скобок.

Однако, если я правильно понял ваш вопрос, следующее должно привести вас в правильном направлении.

from a in session.Query<Audit>() 
join d in session.Query<AuditDetail>() on a.Id equals d.MyAudit.Id 
where a.Timestamp <= DateTime.Now 
select new { a.SourceFile, d.CardNumber, d.Message }); 

Вы можете заменить <= DateTime.Now с вашими предпочтениями.