控制NHibernate实体Eager Loading

时间:2015-02-24 17:11:42

标签: c# hibernate nhibernate asp.net-web-api orm

我对NHibernate相对较新。我正在开发一个Web应用程序,我需要从Hibernate会话中分离实体并将其传递给UI以进行更改。我正在使用 NHibernateUtil.Initialize 来急切加载实体。我面临的问题是实体有很多集合,有些集合甚至有子集合,所以当我使用 NHibernateUtil.Initialize 时,它急切地加载所有集合,这反过来又增加了我传递给UI层的JSON数据。我在服务层使用ASP.NET Webapi。有没有办法控制急切加载到我需要在实体中的特定集合。任何帮助将不胜感激

谢谢

1 个答案:

答案 0 :(得分:0)

在映射中,您可以指定延迟加载集合和引用的默认行为。你是如何创建映射的?您可以通过在单个查询中指定获取策略来覆盖默认值。您使用什么模块进行查询(QueryOver,Linq等)?我的首选是始终将默认设置为延迟加载,然后根据需要设置急切获取。

另外,我的偏好是不将实体直接传递给UI层,而是在Controller中创建ViewModel。