У меня есть следующие объекты:
public class BlogPost {
public virtual int Id { get; set; }
public virtual IList<Keyword> Keywords { get; set; }
public virtual IList<BlogComment> Comments { get; set; }
}
public class BlogComment {
public virtual int Id { get; set; }
public virtual BlogPost Post { get; set; }
}
public class Keyword {
public virtual int Id { get; set; }
public virtual IList<BlogPost> BlogPosts { get; set; }
}
Я хочу загрузить выгружаемый список из BlogPost
s по их Keyword
s и количеству комментариев.Поэтому я пробую это:
var entities = session.Query<BlogPost>()
.Where(t => t.Published)
.FetchMany(t => t.Keywords)
.OrderByDescending(t => t.UpdatedAt)
.Skip((pageNumber - 1) * pageSize).Take(pageSize)
.Select(t => new {
CommentsCount = t.Comments.Count(),
Post = t
})
.ToList();
Но возникает следующая ошибка:
Указанный метод не поддерживается.
И когда я удаляю .Skip((pageNumber - 1) * pageSize).Take(pageSize)
, он работает!например,
var entities = session.Query<BlogPost>()
.Where(t => t.Published)
.FetchMany(t => t.Keywords)
.OrderByDescending(t => t.UpdatedAt)
// remove the below line
//.Skip((pageNumber - 1) * pageSize).Take(pageSize)
.Select(t => new {
CommentsCount = t.Comments.Count(),
Post = t
})
.ToList();
Есть ли у вас какие-нибудь идеи, пожалуйста, взять несколько строк, включая Keyword
s?Спасибо за любое предложение.
Я использую NHibernate 3.2 mapping by code
.