4
我尝试加载一个树时出现问题,这是我的情况,我有一个与n级关联的实体(Hierarchic);问题是,我可以使用ICriteria或HQL热切加载整棵树吗?急于在NHibernate中加载一棵树
在此先感谢您的帮助。 Ariel
我尝试加载一个树时出现问题,这是我的情况,我有一个与n级关联的实体(Hierarchic);问题是,我可以使用ICriteria或HQL热切加载整棵树吗?急于在NHibernate中加载一棵树
在此先感谢您的帮助。 Ariel
是的...只是设置正确的fetchmode。
我会在一分钟内包含示例。
例采取from here =>
IList cats = sess.CreateCriteria(typeof(Cat))
.Add(Expression.Like("Name", "Fritz%"))
.SetFetchMode("Mate", FetchMode.Eager)
.SetFetchMode("Kittens", FetchMode.Eager)
.List();
您可以指定儿童的渴望负载孩子太=>
.SetFetchMode("Kittens.BornOn", FetchMode.Eager)
在你使用LINQ to NHibernate的情况下,使用扩展方法=>
var feedItemQuery = from ad in session.Linq<FeedItem>().Expand("Ads")
where ad.Id == Id
select ad;
而且我会推荐使用helper方法来创建从lambda表达式中传递的字符串。
很可能有可能告诉标准加载整个树。但我不知道这一点,我更喜欢指定我需要什么(似乎加载一切都很危险)。
this有帮助吗?
我知道我可以使用FetchMode加载与实体相关的集合,但我想加载整个树,而不仅仅是下一个级别。 用你的方法,我会做: .SetFetchMode( “孩子”,FetchMode.JOIN)语句 .SetFetchMode( “Children.Children”,FetchMode.JOIN)语句 .SetFetchMode( “Children.Children.Children” FetchMode.Join)等 – Argons 2010-01-30 12:58:14