如何在NHibernate中不重复加载关联?
public IList<ARNomination> GetByEventId(long eventId) { var session = this._sessionFactory.Session; var nominationQuery = session.Query<ARNomination>().Where(n => n.Event.Id == eventId); using (var trans = session.Transaction) { trans.Begin(); // this will load the Contacts in one statement nominationQuery .FetchMany(n => n.Contacts) .ToFuture(); // this will load the CustomAttributes in one statement nominationQuery .FetchMany(n => n.CustomAttributes) .ToFuture(); // this will load the nominations but joins those two tables in one statement which results in cartesian product nominationQuery .FetchMany(n => n.CustomAttributes) .FetchMany(n => n.Contacts) .ToFuture(); trans.Commit(); } return nominationQuery.ToList(); }
开心每一天1111
相关分类