2

C#을 사용하여 CRM의 WebAPI에 액세스하려고하고 있는데, WebAPI 응답에 대해 강한 유형을 생성하는 방법이 있는지 궁금합니다. CrmSvcUtilC#에서 WebAPI OData 객체의 강력한 유형 생성하기

내가 코드를 생성하기 위해 (Marketplace에서 구입 가능) 중 하나로, OData V4 클라이언트 코드 생성기을 사용하는 시도하고가 보인다 그러나이 간단한 구조 (의 int, 문자열, 소수)를 위해 작동하는 조직 서비스를 기반으로 강력한 유형을 생성 복잡한 유형 (예 : 조회)에 문제가 있음

예를 들어로 전화 걸기3210은 지정된 계정에 대한 기본 담당자 ID를 검색합니다.

문제는 JSON 결과는 primarycontactid 속성은 아래 대릴의 의견을 주소 널


로 남겨 직렬화 할 때 _primarycontactid_valueAccount과에 대해 생성 된 개체의 모든 속성에 매핑되지 않는다는 것입니다; 의 Microsoft Dynamics CRM 2011 엔드 포인트에서 설명한 바와 같이

, 다이나믹 CRM 는 2011 엔드 포인트가되지 않습니다 : 그것이 말하는 어디 한 정보 (SDK를 통해 대신에) 직접 CRM WebAPI를 사용하는 나의 결정을 내릴 수있는하고는 here 발견 웹 API를 선호합니다. 끝점을 사용하지 않는 것은 특히 프로그래밍 모델 이이 두 끝점과 다를 때 매우 중요합니다. 은 CRM에 을 연결하는 응용 프로그램에 웹 API를 사용하도록 개발자에게 권장합니다. 플러그인 및 워크 플로 어셈블리의 경우 계속해서 SDK 어셈블리를 사용할 수 있습니다. 다음 릴리즈에서는이 어셈블리를 수정하여 2011 년 엔드 포인트 대신 웹 API를 사용할 수 있도록 어셈블리를 수정합니다.

언어가 매우 모호하다고 생각했습니다.

https://docs.microsoft.com/en-au/dynamics365/customer-engagement/developer/choose-development-style : Microsoft는 SDK 어셈블리를 사용할뿐만 아니라, 그들은 단지 플러그인에 사용되어야 함을 불러와


CRM을 WebAPI를 사용해야한다는 MS의 또 다른 링크를 워크 플로우 될 것이라고 말

+0

SDK 호출에 대해 WebApi를 사용하고 싶습니까? SDK 호출이 WebApi 호출로 내부적으로 대체 될 것이라고 여러 번 말한 적이 있습니다 ... – Daryl

+0

@Daryl 귀하의 질문에 대답하려고하는 곳에서 편집을 추가했습니다. 짧은 대답은 내가 Microsoft의 설명서가 매우 모호하다는 것을 발견했다는 것입니다. – jasonscript

+0

@Daryl WebApi를 사용해야하는 MS로부터의 더 많은 설명서 WebApi – jasonscript

답변

0

엔티티는 Edm.Guid 유형의 구조적 특성을 나타내므로 클래스의 참조로 매핑되지 않습니다. Contact 유형의 탐색 속성을 나타내는 속성은 Primarycontactid입니다. 아래에 생성 된 클라이언트 SDK 클래스에서 속성 정의를 복사 :

public global::System.Nullable<global::System.Guid> _primarycontactid_value  
public global::ODataV4Sdk.Contact Primarycontactid 

마이크로 소프트의 하나로, OData 클라이언트 라이브러리가 탐색 속성과 확장에 대한 지원을 내장에 -하지만 연결하거나 기록을 해제 할 수 없습니다 수도 있습니다. OData 라이브러리 설명서에는 예제가 없습니다 (http://odata.github.io/odata.net/#04-01-basic-crud-operations).

반면에 Simple.Odata.Client (https://github.com/object/Simple.OData.Client/wiki)는 입력 된 구문을 제공하고 연결 작업을 지원하지만 내 지식에 따라 툴링 지원을 제공하지 않습니다. 클래스는 수동으로 만들어야합니다.형식이 지정되지 않은 구문을 사용하면 클래스 생성 작업을 피할 수 있지만 물론 Intellisense에서 코딩 속도를 높이 지 못할뿐 아니라 런타임까지 맞춤법 오류가 발견되지 않을 수도 있습니다.

+0

제가 작업하고있는 솔루션은 여러 공급 업체의 솔루션이 혼합 된 것이므로 이름 지정 규칙이 일관되지 않아 맞춤법 오류가 자주 발생합니다. 답변을 주셔서 감사합니다. 그러나 저는 CRM WebApi가 현재 이전에 제공되었던 기능에서 한 걸음 물러나는 것처럼 보입니다. – jasonscript