Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# nhibernate跨机器延迟加载问题_C#_Wcf_Fluent Nhibernate_Lazy Loading - Fatal编程技术网

C# nhibernate跨机器延迟加载问题

C# nhibernate跨机器延迟加载问题,c#,wcf,fluent-nhibernate,lazy-loading,C#,Wcf,Fluent Nhibernate,Lazy Loading,我有一个客户端,一个服务器和一个数据库 数据库映射到具有fluent nhibernate的服务器。 到现在为止,一直都还不错 客户端使用wcf与服务器对话。 我想在客户端实现延迟加载 有什么解决方案吗?AFAIK没有解决方案,延迟加载与nhibernate的代理机制一起工作,这是其实现的固有特性。 有一个项目被称为,但这个项目已被放弃。 nhibernate将在wcf上工作,但不会延迟加载。wcf的本质是在发送之前了解数据的形状,即,它已经被检索并放入某种数据契约中 可能您可以在inital服

我有一个客户端,一个服务器和一个数据库 数据库映射到具有fluent nhibernate的服务器。 到现在为止,一直都还不错 客户端使用wcf与服务器对话。 我想在客户端实现延迟加载


有什么解决方案吗?

AFAIK没有解决方案,延迟加载与nhibernate的代理机制一起工作,这是其实现的固有特性。 有一个项目被称为,但这个项目已被放弃。
nhibernate将在wcf上工作,但不会延迟加载。

wcf的本质是在发送之前了解数据的形状,即,它已经被检索并放入某种数据契约中


可能您可以在inital服务调用中提供一个参数,以指示是否应填充子属性,尽管要填充到多大程度总是很棘手的。

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

它工作得很好

若我需要加载一些延迟加载集合,我只需在服务器上迭代它并将其发送回客户端, 当我想更新一个部分选中的对象时,我必须从数据库中重新选择它并更新完整的数据实体


但这是值得的

我很抱歉持悲观态度,但让NHibernate在WCF上使用惰性加载是不可行的

使用以下代码,WCF可以使用惰性加载:

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

仅供参考stackoverflow不是人们为您编写代码的地方,您提出的问题非常复杂。假设人们确实回答了你这样一个复杂的问题,那么他们会收到很多信息,这些信息很可能指向其他SO帖子和博客,帮助你自己找到答案。这不是一个简单的问题,您不应该期望有人能够将代码交给您,您可以在不做任何更改的情况下复制并粘贴到您的解决方案中。这可能更像是语言障碍,但告诉别人“给我一个好的解决方案”不利于获得帮助。我只是需要我找不到自己的链接我不是在找人帮我做这项工作。。。。我相信已经有人这么做了,仅此而已..我理解你的立场,但是这里的其他人发布了一些有用的链接。。但对于企业应用程序来说,这并不是一个好主意。。。