2016-11-21 4 views
4

Ich habe den OData-Client-Code mit this generator erfolgreich für den Zugriff auf meine Dynamics CRM WebApi-Dienste generiert. Leider hat es für eine Vanilla-Organisation eine ~ 30 MB CS-Datei generiert. Das ist viel zu groß, da ich nur auf ein paar Entitäten zugreifen muss.Verwenden von OData Client Generator zum Auswählen der Entitäten, für die Proxyklassen generiert werden sollen?

Ich weiß, dass ich die Metadaten für den OData-Service herunterladen und manuell bearbeiten kann, bevor ich den Generator starte, aber ich suche nach einer entwicklerfreundlicheren Methode.

Ich habe für eine Art und Weise haben scheint die Metadaten direkt zu beschränken, sondern es die XML-Metadatendatei statisch ist: Fetching $metadata for a specific collection or entity with Odata web services in Microsoft Dynamics NAV 2016

Was ist der beste Weg ist, Proxy-Klassen nur für einige Einheiten zu generieren?

EDIT: Ich habe tatsächlich versucht, die Metadatendatei manuell zu bearbeiten, indem Sie EntityType-Knoten und entsprechende EntitySets entfernen, aber das Tool beschwerte sich über einige Schnittstelle IEdm ... so noch ungelöst.

+0

Wenn Sie über Svcutil sprechen, hat jemand eine Lösung hier http://erikpool.blogspot.co.uk/2011/03/filtering-generated-entities-with.html –

+0

@JamesWood Nein, nicht CrmSvcUtil, habe ich eine Verknüpfung zu dem für WebApi-Dienste empfohlenen Client-Code-Generator hinzugefügt. – Valentin

+0

Haben Sie eine Lösung gefunden? –

Antwort

0

ich die empfohlene Art und Weise glauben, Datenelemente zu verhindern, dass durch die ODATA Schicht freigelegt wird, ist die „Public“ Eigenschaft auf false auf die Entität in Dynamics zu setzen 365.

ich in genau der gleichen Ausgabe leite; Die automatische Erstellung der TT-Proxy-Datei mit dem OData Client Generator in VS 2012 führt zu einer 50-MB-Klasse. Dies macht Visual Studio in den meisten Fällen extrem instabil.

Da es in D365 über 2000 Entitäten gibt, ist es im Grunde unmöglich, sie alle auf diese Weise privat zu machen, da wir keine Möglichkeit finden, mehrere Entitäten gleichzeitig auszuwählen und zu aktualisieren.

Wenn jemand eine direkte SQL-Aktualisierung oder eine andere Möglichkeit hat, dies zu erreichen, würde ich das gerne hören.

Verwandte Themen