Loading navigation properties in NHibernate 3.2 -
i have these entities:
public class post { public virtual int id { get; set; } public virtual icollection<tag> tags { get; set; } public virtual icollection<comment> comments { get; set; } } public class tag { public virtual int id { get; set; } public virtual icollection<post> posts { get; set; } } public class comment { public virtual int id { get; set; } public virtual post post { get; set; } }
i want load post
it's related tag
s , related comment
s's count linq
. use this:
var posts = session .query<post>() .orderby(t => t.id) .select(t => new { post = t, commentscount = t.comments.count(), tags = t.tags }).tolist();
do think enough? or have suggestion may better code? thanks.
this highly depends on mapping , want fetched result. imho eager loading tags
speed performance (select n+1) if want access tags list (assuming tags mapped lazy).
var posts = session .query<post>() .fetch(t => t.tags) .orderby(t => t.id) .select(t => new { post = t, commentscount = t.comments.count(), tags = t.tags }).tolist();
http://ayende.com/blog/1328/combating-the-select-n-1-problem-in-nhibernate
Comments
Post a Comment