如何查询NHibernate中的一对多关系?

如何查询NHibernate中的一对多关系?,nhibernate,fluent-nhibernate,linq-to-nhibernate,Nhibernate,Fluent Nhibernate,Linq To 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 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; }
}
公共类审计{
公共审计{
详细信息=新列表();
}
公共虚拟IList详细信息{get;set;}
公共虚拟字符串源文件{get;string}
公共虚拟日期时间时间戳{get;set;}
公共虚拟长Id{get;set;}
}
公共类审核详细信息{
公共虚拟字符串CardNumber{get;set;}
公共虚拟字符串消息{get;set;}
公共虚拟审核MyAudit{get;set;}
公共虚拟长Id{get;set;}
}

我如何通过查询这些一对多关系来返回一个对象列表,其中包含SourceFile、CardNumber和消息值,例如使用LINQ通过时间戳进行过滤?提前感谢。

审计类的构造函数缺少括号

然而,如果我正确理解了你的问题,以下几点应该会引导你走向正确的方向

 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 });
来自会话中的查询()
在session.Query()中加入d,a.Id等于d.MyAudit.Id
其中a.时间戳