如何查询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.时间戳