2009-11-30 51 views
1

我得到了一个客户端的服务器和分贝 分贝映射到服务器与流利的nhibernate。 目前为止这么好 客户端与wcf服务器通话。 我想在客户端实现延迟加载。nhibernate跨机器懒加载问题

有没有解决方案?

+2

仅供参考计算器不是人写的代码为你的地方,你问一个非常复杂的问题。假设人们回答你这样一个复杂的问题,希望得到很多很可能指向其他SO帖子和博客的信息,这些信息将帮助你自己开发答案。这是一个非trival问题,你不应该指望某人能够提交你的代码,你可以复制并粘贴到你的解决方案中,而不会有任何改变。这可能更多是语言障碍,但告诉其他人“给我一个好的解决方案”不利于获得帮助。 – 2009-11-30 16:40:55

+1

我只是需要链接,我找不到我自己我并没有要求某人为我做这项工作....我确信有人已经做到了这一切.. – 2009-11-30 20:02:50

回答

3

AFAIK没有解决方案,惰性加载与nhibernate的代理机制一起工作,这是它的实现非常内在的。 有一个名为Nhibernate.Remote的项目,但这已被放弃。 nhibernate会通过wcf工作,但没有延迟加载。

0

WCF的本质是在发送之前对你的数据进行学习,也就是说,它已经被回收并放入某种数据契约中。

可能你可以在初始服务调用中提供一个参数来指示是否应该填充子属性,尽管你走多远总是会变得棘手。

0

当我意识到它不可能发生时,我决定使用投影和结果变换器。

它的效果很好。

,如果我需要加载一些延迟加载集合,我只是重复它在服务器上,并将其发送回客户端, 当我想更新部分选定的对象,我必须从数据库重新选择他和更新的完整数据实体。

,但它是值得的

0

对不起悲观,但制作与NHibernate的延迟加载在WCF工作行不通

+0

我明白你的位置,但其他人这里发布了一些不错的工作链接......但对企业应用来说并不好... – 2010-03-25 13:02:26

0

随着下面的代码WCF可以与延迟加载工作:

var proxy = myObj as INHibernateProxy; 
myObj = (myObj)proxy.HibernateLazyInitializer.GetImplementation();