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 –