我刚刚开始了一个需要 WCF 服务来处理分布式环境的新项目。我仍在努力寻找实现事物的最佳方法。
我想使用 NHibernate,但我已经看到了几种不同的方法来解决序列化问题。这是在 3.0 中处理的吗?我注意到卡车内的 wcf_context :D
如果不处理,有人可以指出我正确的方向吗?
感谢大家
我刚刚开始了一个需要 WCF 服务来处理分布式环境的新项目。我仍在努力寻找实现事物的最佳方法。
我想使用 NHibernate,但我已经看到了几种不同的方法来解决序列化问题。这是在 3.0 中处理的吗?我注意到卡车内的 wcf_context :D
如果不处理,有人可以指出我正确的方向吗?
感谢大家
通常,如果要从服务返回数据,则需要返回特定于服务目的的类,其中包含与该服务调用相关的内容、DTO(数据传输对象)或 WCF 中的 DataContract世界。
AutoMapper是对实体和 DTO 之间的映射特别有用的一种工具。无论您使用 AutoMapper 还是仅使用“左右”编码,这都将防止延迟加载/延迟执行问题,因为执行映射会导致执行发生。
从服务中返回实体可能不是一个好主意的原因有很多,这里有一些(对此大部分有不同的意见)
您不能使用 WCF 传递延迟加载的对象。
有一些解决方法,但有一个错误将在下一个 WCF 版本中修复(即将推出,2010 年 4 月)
除此之外,只要您使用正确的 DataContract 定义对象,它们就会愉快地一起离开。
列表的序列化也存在问题 - 您需要使用带有特定标志的 svcutil 生成代理,否则会发生坏事(列表变成数组并且您无法添加更多项目)(除非您使用某种列表WCF 和 NHibernate 都同意)- 查一下(Nhiberate 和 WCF 列表)-