EF4:仅序列化Poco对象的预先加载的导航属性

时间:2011-05-18 02:41:28

标签: c# entity-framework-4 poco

我正在使用返回POCO对象的WCF服务。我的导航属性标记为虚拟以启用延迟加载/代理。我还使用[ApplyDataContractResolver]模式将代理序列化为父POCO对象。一切正常,直到我向关系的两侧添加导航属性,这会导致循环引用 - 导致它无法正确序列化。有没有办法告诉序列化程序只序列化急切加载(使用.include())导航属性并忽略尚未加载的导航属性而不是填充它们?

1 个答案:

答案 0 :(得分:2)

除非manually define that,否则无法仅序列化预先加载的属性。此外它不会帮助你,因为你仍然可以有循环引用的渴望加载实体。如果你想通过WCF发送POCO,你应该关闭延迟加载,因为你永远不会避免延迟加载不必要的属性,除非你通过属性永久地将它们全部排除在序列化之外,但在这种情况下,它们也不会在急切加载后被序列化。 / p>