3
我遇到意外的行为,但对我而言并不清楚。当然,我可以使用不同的,但是是什么原因?Nhibernate查询加入(或读取)return duplicates
我实体(流利自动映射):
public class Ticket
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual IList<Activity> Activities { get; set; }
}
public class Activity
{
public virtual int Id { get; set; }
public virtual string Title { get; set; }
public virtual Ticket Ticket { get; set; }
}
测试数据(1票有5个活动):
new Ticket { Id = 1, Activities = new List<Activity>
{
new Activity(), new Activity(), new Activity(), new Activity()
};
的查询:
var report = GetSessionFactory()
.OpenSession()
.QueryOver<Ticket>()
.JoinAlias(ticket => ticket.Activities,() => activity)
.List<Ticket>();
而且我有以下结果:
我明白了。但是什么原因?为什么NHibernate不会隐式执行它? –
通过。这是nh开发团队的问题。说实话,懒加载是你的朋友。 – Rippo
建议什么是导致SELECT N + 1 –