0

我一直在研究从 WCF 加载实体:

NHibernate:IUserType 的延迟加载

NHibernate:多对一 IUserType

使用来自 web 服务的值预加载 IUserType

我已经研究了如何从 WCF 延迟加载实体:您必须创建自己的代理来调用 WCF 并从 IUserType 返回它,但我会在某个时候写博客。

我现在的问题是,我可以以通常的方式从数据库中部分加载实体,因此填充了一些属性(存储在本地的属性),但对于其他属性,它必须调用 WCF?本地属性是可能在查询中搜索或返回的属性(不能为每个属性调用 WCF - 太慢),如果系统需要对其执行某些业务逻辑,则将调用其他属性。

问题是我认为我不能在这里使用 IUserType,因为我需要为我的集合使用 bag/set,因为我希望它们能够被急切地加载。有什么办法可以做到这一点?

编辑:

如果我可以强制 NHibernate 返回一个代理,以及如何访问该代理上的拦截器,甚至指定我自己的拦截器,那将是理想的选择?

4

1 回答 1

2

可以注入您自己的自定义拦截器。您需要为实例化对象并设置您自己的 LazyInitializer 的会话提供一个拦截器,请参见代理工厂下的此处

于 2011-09-16T12:40:09.550 回答