2016-11-21 18 views
4

Я успешно сгенерировал код клиента OData, используя this generator для доступа к моим услугам Dynamics CRM WebApi. К сожалению, для ванильной организации он создал файл cs размером ~ 30 МБ. Это путь к большому, поскольку все, что мне нужно, - это доступ к нескольким сущностям.Использование генератора данных OData, как выбрать, какие объекты должны иметь классы прокси-сервера?

Я знаю, что могу загрузить метаданные для службы OData и вручную редактировать перед запуском генератора, но я ищу более удобный для разработчиков способ.

Я искал способ, чтобы ограничить метаданные непосредственно, но это, кажется, файл метаданных XML статична: Fetching $metadata for a specific collection or entity with Odata web services in Microsoft Dynamics NAV 2016

Что это лучший способ для создания классов прокси только для некоторых субъектов?

EDIT: Я фактически попытался вручную отредактировать файл метаданных, удалив узлы EntityType и соответствующие EntitySets, но инструмент жаловался на некоторый интерфейс IEdm ... так еще не решен.

+0

Если вы говорите о Svcutil, у кого-то есть решение здесь http://erikpool.blogspot.co.uk/2011/03/filtering-generated-entities-with.html –

+0

@JamesWood Нет, не CrmSvcUtil, у меня есть добавлена ​​ссылка на генератор кода клиента, рекомендованный для служб WebApi. – Valentin

+0

Вы нашли решение на этом? –

ответ

0

Я считаю, что рекомендуемый способ предотвратить объекты данных от воздействия через OData слоя установить свойство «Public» ложь о лице в динамике 365.

Я бегу в точно такой же вопрос; с файлом прокси-сервера TT, сгенерированным с помощью генератора клиента OData в VS 2012, что приводит к классу 50 МБ. Это приводит к тому, что Visual Studio крайне нестабильно сбой в большинстве случаев.

Поскольку в D365 существует более 2000 объектов, в принципе невозможно установить их для всех таким образом, поскольку мы не смогли найти способ выбора нескольких объектов и одновременно обновить их.

Если у кого есть прямое SQL-обновление или другой способ достичь этого, я тоже хотел бы услышать.