Если вы используете EntityObjects, а не POCO, вы не сможете этого сделать.Причина в том, что если ваш тип SYSTEM
является производным от EntityObject
, он наследует некоторые свойства, которые также будут сериализованы.См. здесь и здесь .
Решением является либо
- для переключения на использование POCO вместо EntityObjects
- написать собственный конвертер, как объяснено в SO-вопросе, который вы связали
- , чтобы проецировать ваши запросы на анонимные типы и сериализовать эти , используя
JavaScriptSerializer
- для сопоставления вашихсущности к объектам передачи данных (DTO; в основном это контракты данных) и передают их
EDIT:
Если вы уже используете POCO, причиной может быть то, что EF создает внутренне прокси-классов для ваших POCO для отслеживания изменений и отложенной загрузки для работы.Эти прокси-классы создаются динамически и могут вызвать сбой сериализации.