【问题标题】:EF4: Serialize only eager loaded navigation properties of Poco ObjectsEF4:仅序列化 Poco 对象的预先加载的导航属性
【发布时间】:2011-08-27 17:08:55
【问题描述】:
我正在使用返回 POCO 对象的 WCF 服务。我的导航属性被标记为虚拟以启用延迟加载/代理。我还使用 [ApplyDataContractResolver] 模式将代理序列化为父 POCO 对象。一切正常,直到我将导航属性添加到关系的双方,这会导致循环引用 - 导致它无法正确序列化。有没有办法告诉序列化程序只序列化急切加载的(使用.include())导航属性并忽略尚未加载的导航属性而不是填充它们?
【问题讨论】:
标签:
c#
entity-framework-4
poco
【解决方案1】:
除非您manually define that,否则无法仅序列化预先加载的属性。此外,它对您没有帮助,因为您仍然可以使用循环引用预先加载实体。如果你想通过 WCF 发送 POCO,你应该关闭延迟加载,因为你永远不会避免延迟加载不必要的属性,除非你永久地将它们从属性序列化中排除,但在这种情况下,它们也不会在预先加载后被序列化。