Это не проблема, и это никогда не было проблемой. Это абсолютно ожидаемое и правильное поведение. STE - это классы, которые содержат данные и логику (логика отслеживает изменения).
При добавлении ссылки на службу ваш прокси-код клиента генерируется из метаданных службы. Метаданные выставляются в виде WSDL. WSDL - это описание сервиса на основе XML, которое также содержит XSD-описание типов передаваемых данных. XSD может описывать только формат данных, но не связанную логику, реализованную типом. По умолчанию все неизвестные типы данных, описанные в WSDL, генерируются на клиенте. Поэтому, когда вы создаете клиентский прокси со всеми типами данных с помощью Добавить ссылку на службу, логика отслеживания теряется.
Чтобы преодолеть эту проблему, вам нужно сделать две вещи:
- Создайте отдельную сборку и поместите все ваши STE в эту сборку. Затем поделитесь этой сборкой среди всех задействованных слоев (да, вы должны использовать Добавить ссылку в вашем клиенте).
- Затем вы можете использовать опцию Добавить сервис с проверкой «Повторное использование типов в ссылочных сборках».