2011-05-18 41 views
0

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

回答

2

只有当您使用manually define that时,才能序列化只有加载属性的属性。此外,它不会帮助你,因为你仍然可以拥有循环引用的加载实体。如果你想通过WCF发送POCO,你应该关闭延迟加载,因为永远不会避免延迟加载不必要的属性,除非你通过属性永久地排除所有这些属性的序列化,但是在这种情况下,它们在加载之后也不会被序列化。