我有這些實體:LINQ到NHibernate的:不能使用LINQ的跳過()和Take()的支持fetchmany
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; }
}
我想通過自己的Keyword
S和評論加載中BlogPost
個分頁列表-計數。所以,我試試這個:
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
。
支持謝謝。那麼如何通過QueryOver加載多對多關聯? Fetch方法只支持一對多和一對一的關聯!你能幫忙加載'post.Keywords'和'post.Comments.Count'嗎? – 2012-03-12 15:26:06