Я сгенерировал свои объекты POCO с помощью генератора POCO, в моей базе данных более 150+ таблиц.Я разделяю объекты POCO на всех уровнях приложений, включая клиента.Я отключил LazyLoading и ProxyCreation в моем контексте. Я использую WCF поверх моего доступа к данным и бизнес-уровня.
Теперь, когда я возвращаю объект poco своему клиенту, я получаю сообщение об ошибке " Базовое соединение было закрыто " Я включил трассировку WCF и обнаружил точную ошибку: Содержит циклы и не может быть сериализован, если отслеживание ссылок отключено .
Я посмотрел на MSDN и нашел решения, такие как установка IsReference = true в атрибуте метода DataContract, но я не украшаю свои классы POCO с помощью DataContracts, и я предполагаю, что в этом также нет необходимости.Я не буду называть это POCO, если я украслю класс атрибутом DataContract
Затем я нашел решения, такие как применение пользовательского атрибута [CyclicReferenceAware] поверх моего ServiceContracts. Это сработало, но я хотел бросить этот вопроссообществу, чтобы узнать, как это удалось другим, а также почему Microsoft не предоставила встроенную поддержку для определения циклических ссылок при сериализации классов POCO