我正在使用返回POCO对象的WCF服务。我的导航属性标记为虚拟以启用延迟加载/代理。我还使用[ApplyDataContractResolver]模式将代理序列化为父POCO对象。一切正常,直到我向关系的两侧添加导航属性,这会导致循环引用 - 导致它无法正确序列化。有没有办法告诉序列化程序只序列化急切加载(使用.include())导航属性并忽略尚未加载的导航属性而不是填充它们?
答案 0 :(得分:2)
除非manually define that,否则无法仅序列化预先加载的属性。此外它不会帮助你,因为你仍然可以有循环引用的渴望加载实体。如果你想通过WCF发送POCO,你应该关闭延迟加载,因为你永远不会避免延迟加载不必要的属性,除非你通过属性永久地将它们全部排除在序列化之外,但在这种情况下,它们也不会在急切加载后被序列化。 / p>