C# nhibernate跨机器延迟加载问题
我有一个客户端,一个服务器和一个数据库 数据库映射到具有fluent nhibernate的服务器。 到现在为止,一直都还不错 客户端使用wcf与服务器对话。 我想在客户端实现延迟加载C# nhibernate跨机器延迟加载问题,c#,wcf,fluent-nhibernate,lazy-loading,C#,Wcf,Fluent Nhibernate,Lazy Loading,我有一个客户端,一个服务器和一个数据库 数据库映射到具有fluent nhibernate的服务器。 到现在为止,一直都还不错 客户端使用wcf与服务器对话。 我想在客户端实现延迟加载 有什么解决方案吗?AFAIK没有解决方案,延迟加载与nhibernate的代理机制一起工作,这是其实现的固有特性。 有一个项目被称为,但这个项目已被放弃。 nhibernate将在wcf上工作,但不会延迟加载。wcf的本质是在发送之前了解数据的形状,即,它已经被检索并放入某种数据契约中 可能您可以在inital服
有什么解决方案吗?AFAIK没有解决方案,延迟加载与nhibernate的代理机制一起工作,这是其实现的固有特性。 有一个项目被称为,但这个项目已被放弃。
nhibernate将在wcf上工作,但不会延迟加载。wcf的本质是在发送之前了解数据的形状,即,它已经被检索并放入某种数据契约中
可能您可以在inital服务调用中提供一个参数,以指示是否应填充子属性,尽管要填充到多大程度总是很棘手的。当我意识到这不可能发生时,我决定使用投影和结果转换器 它工作得很好 若我需要加载一些延迟加载集合,我只需在服务器上迭代它并将其发送回客户端, 当我想更新一个部分选中的对象时,我必须从数据库中重新选择它并更新完整的数据实体
但这是值得的我很抱歉持悲观态度,但让NHibernate在WCF上使用惰性加载是不可行的使用以下代码,WCF可以使用惰性加载:
var proxy = myObj as INHibernateProxy;
myObj = (myObj)proxy.HibernateLazyInitializer.GetImplementation();
仅供参考stackoverflow不是人们为您编写代码的地方,您提出的问题非常复杂。假设人们确实回答了你这样一个复杂的问题,那么他们会收到很多信息,这些信息很可能指向其他SO帖子和博客,帮助你自己找到答案。这不是一个简单的问题,您不应该期望有人能够将代码交给您,您可以在不做任何更改的情况下复制并粘贴到您的解决方案中。这可能更像是语言障碍,但告诉别人“给我一个好的解决方案”不利于获得帮助。我只是需要我找不到自己的链接我不是在找人帮我做这项工作。。。。我相信已经有人这么做了,仅此而已..我理解你的立场,但是这里的其他人发布了一些有用的链接。。但对于企业应用程序来说,这并不是一个好主意。。。