Dataverse API 및 테이블에 대한 코드 생성기
pac modelbuilder 빌드 명령을 사용하여 Dataverse 테이블, 사용자 지정 메시지 및 OrganizationServiceContext 클래스에서 파생된 클래스에 대한 초기 바인딩된 .NET 클래스를 생성합니다. 이 명령을 사용하여 초기 바인딩된 클래스를 생성하는 방법에 대해 자세히 알아보기
다음에서 OrganizationServiceContext파생된 클래스입니다.
- 변경 관리와 같은 기능을 지원하도록 클라이언트의 상태를 유지 관리합니다.
- Dataverse 데이터를 사용하여 LINQ 쿼리를 작성할 수 있도록 System.Linq.IQueryable 인터페이스 및 LINQ(.NET Language-Integrated Query) 쿼리 공급자를 구현합니다.
이 코드 생성 도구에서 사용할 수 있는 기능에 대한 자세한 내용은 다음을 수행합니다.
Commands
| Command | Description |
|---|---|
| pac modelbuilder 빌드 | Dataverse API 및 테이블에 대한 코드 모델 빌드 |
pac modelbuilder 빌드
Dataverse API 및 테이블에 대한 코드 모델 빌드
비고
명령을 사용 build 하려면 먼저 pac auth create 명령을 사용하여 Dataverse에 연결해야 합니다. 여러 연결이 있는 경우 pac 인증 선택을 사용하여 코드를 생성할 Dataverse 환경을 선택합니다.
Example
다음 예제에서는 명령 프롬프트와 build 함께 명령을 사용하는 방법을 보여 있습니다.
pac modelbuilder build ^
--entitynamesfilter account;contact ^
--generatesdkmessages ^
--messagenamesfilter examp_* ^
--emitfieldsclasses ^
--emitVirtualAttributes ^
--namespace MyApps.Model ^
--outdirectory c:\src\MyApps\Model ^
--writesettingsTemplateFile ^
--serviceContextName OrgContext
PowerShell을 사용하는 동일한 명령:
pac modelbuilder build `
--entitynamesfilter 'account;contact' `
--generatesdkmessages `
--messagenamesfilter 'examp_*' `
--emitfieldsclasses `
--emitVirtualAttributes `
--namespace 'MyApps.Model' `
--outdirectory 'c:\src\MyApps\Model' `
--writesettingsTemplateFile `
--serviceContextName 'OrgContext'
중요합니다
PowerShell을 사용할 때 문자열 매개 변수를 작은따옴표로 묶어야 합니다.
이 명령의 결과는 다음 파일이 폴더에 기록된다는 것입니다 c:\src\MyApps\Model .
C:\src\MyApps\Model\
|---엔터티\
| |--account.cs
| |--contact.cs
|---OptionSets\
| |--addresstypes.cs
|---Messages\
| |--examp_myapi.cs
|---
|---
|--- OrgContext.cs
builderSettings.json 명령에 대해 지정한 매개 변수를 포함합니다. 변경 내용이 변경되면 파일을 빠르게 다시 생성하는 데 사용할 수 있습니다. 다음 예제에서는 buildersettings.json을 사용하여 첫 번째 명령에서 생성된 파일을 사용하는 방법을 보여줍니다.
pac modelbuilder build `
--outdirectory c:\src\MyApps\Model `
--settingsTemplateFile c:\src\MyApps\Model\builderSettings.json
모든 매개 변수를 builderSettings.json 명령에 전달하는 대신 파일을 만들고 사용할 수도 있습니다. 다음은 위의 첫 번째 예제와 동일한 예제입니다.
{
"suppressINotifyPattern": false,
"suppressGeneratedCodeAttribute": false,
"language": "CS",
"namespace": "MyApps.Model",
"serviceContextName": "OrgContext",
"generateSdkMessages": true,
"generateGlobalOptionSets": false,
"emitFieldsClasses": true,
"entityTypesFolder": "Entities",
"messagesTypesFolder": "Messages",
"optionSetsTypesFolder": "OptionSets",
"entityNamesFilter": [
"account",
"contact"
],
"messageNamesFilter": [
"examp_*"
],
"emitEntityETC": false,
"emitVirtualAttributes": true
}
settingsTemplateFile 매개 변수를 사용하는 동안 명령에 매개 변수를 전달하면 명령에 전달된 매개 변수가 파일에 설정된 매개 변수를 재정의 builderSettings.json 합니다.
settingsTemplateFile 매개 변수와 writesettingsTemplateFile 매개 변수를 동시에 사용할 수 없습니다.
modelbuilder 빌드에 필요한 매개 변수
--outdirectory
-o
엔터티, 메시지 및 옵션 집합 파일에 대한 디렉터리를 작성합니다.
modelbuilder 빌드에 대한 선택적 매개 변수
--emitentityetc
-etc
설정되면 생성된 코드에 엔터티 ETC(엔터티 형식 코드)가 포함됩니다.
이 매개 변수에는 값이 필요하지 않습니다. 그것은 스위치입니다.
--emitfieldsclasses
-efc
코드 생성 시 엔터티별로 모든 필드 이름을 포함하는 상수 구조를 생성합니다.
이 매개 변수에는 값이 필요하지 않습니다. 그것은 스위치입니다.
--emitvirtualattributes
-eva
설정할 때 조회 특성의 기본 이름 특성 값에 대한 필터링을 사용하도록 설정하는 조회에 대한 지원 이름 특성이 포함됩니다.
이 매개 변수에는 값이 필요하지 않습니다. 그것은 스위치입니다.
--entitynamesfilter
-enf
Dataverse에서 데이터를 읽을 때 검색되는 엔터티 목록을 필터링합니다. 세미콜론으로 구분된 목록으로 전달됩니다. 양식 <엔터티 논리 이름> 사용;<entitylogicalname>
--entitytypesfolder
-etf
엔터티를 포함하는 폴더 이름입니다. 기본 이름은 '엔터티'입니다.
--environment
-env
대상 Dataverse를 지정합니다. 값은 Guid 또는 절대 https URL일 수 있습니다. 지정하지 않으면 현재 인증 프로필에 대해 선택된 활성 조직이 사용됩니다.
--generateGlobalOptionSets
-go
모든 전역 OptionSets를 내보낸다. 참고: 엔터티에 전역 옵션 집합에 대한 참조가 포함된 경우 이 스위치가 없는 경우에도 내보내집니다.
--generatesdkmessages
-a
설정되면 코드 생성의 일부로 Sdk 메시지 클래스를 내보낸다.
이 매개 변수에는 값이 필요하지 않습니다. 그것은 스위치입니다.
--language
-l
생성된 프록시 코드에 사용할 언어입니다. 이 값은 'CS' 또는 'VB'일 수 있습니다. 기본 언어는 'CS'입니다.
--logLevel
-ll
로그 수준입니다. 기본값은 'Off'입니다.
다음 값 중 하나를 사용합니다.
OffCriticalErrorWarningInformationVerboseActivityTracingAll
--messagenamesfilter
-mnf
Dataverse에서 데이터를 읽을 때 검색되는 메시지 목록을 필터링합니다. 세미콜론으로 구분된 목록으로 전달되는 필수 메시지(만들기, 업데이트, 삭제, 검색, RetrieveMultiple, 연결 및 연결 해제)는 항상 포함됩니다. 문자열로 시작하거나 끝나는 모든 메시지를 허용하려면 메시지 이름과 함께 후행 또는 선행 별표(*)를 사용합니다. 양식 <메시지 이름>< 사용메시지 이름>입니다.
--messagestypesfolder
-mtf
메시지를 포함하는 폴더 이름입니다. 기본 이름은 'Messages'입니다.
--namespace
-n
생성된 코드의 네임스페이스입니다. 기본 네임스페이스는 전역 네임스페이스입니다.
--optionsetstypesfolder
-otf
옵션 집합을 포함하는 폴더 이름입니다. 기본 이름은 'OptionSets'입니다.
--serviceContextName
-sctx
생성된 서비스 컨텍스트의 이름입니다. 값이 전달되면 서비스 컨텍스트에 사용됩니다. 그렇지 않은 경우 서비스 컨텍스트가 생성되지 않습니다.
--settingsTemplateFile
-stf
이 Dataverse 모델 작성기 실행에 사용할 설정을 포함하고 명령줄에서 중복 매개 변수를 재정의합니다. --writesettingstemplate을 사용하는 경우 설정할 수 없습니다.
--suppressGeneratedCodeAttribute
-sgca
설정하면 생성된 모든 개체가 코드 생성 엔진 및 버전으로 태그가 지정되지 않습니다.
이 매개 변수에는 값이 필요하지 않습니다. 그것은 스위치입니다.
--suppressINotifyPattern
사용하도록 설정하면 속성 및 클래스에 대한 INotify 래퍼를 작성하지 않습니다.
--writesettingsTemplateFile
-wstf
설정되면 현재 전달된 설정 또는 기본 설정을 사용하여 설정 파일을 출력 디렉터리에 씁니다.
비고
다음은 명령을 사용하기 위한 권장 사항입니다 pac modelbuilder build .
entitynamesfilter 및 messagenamesfilter 매개 변수 설정
주의
엔터티 이름 필터 및 messagenamesfilter 매개 변수를 사용하여 생성된 파일을 프로젝트에서 사용할 파일로 제한하는 것이 좋습니다. 그렇지 않으면 빌드 명령은 Dataverse의 모든 테이블 및 메시지에 대한 코드를 생성하려고 시도합니다. 처리하는 데 상당한 시간이 걸립니다.
Microsoft.Crm.Sdk.Messages 및 Microsoft.Xrm.Sdk.Messages 네임스페이스에 있는 메시지에 대한 클래스는 이 명령을 사용하여 생성되지 않습니다. 사용자 지정 작업과 같은 매개 변수에 messagenamesfilter 찾을 수 없는 메시지만 포함해야 합니다.
WPF 애플리케이션을 빌드하지 않는 경우 설정 suppressINotifyPattern
이 명령에 의해 표시되지 않는 래퍼는 INotify WPF 애플리케이션을 사용하는 데이터 바인딩 시나리오에 사용됩니다. 생성된 코드를 사용하여 WPF 애플리케이션을 빌드하지 않는 경우 필요하지 않습니다.
suppressINotifyPattern 매개 변수를 사용하여 표시하지 않습니다.
메시지 클래스를 생성할 때 포함 serviceContextName
메시지 클래스를 생성하는 경우 사용하지 않더라도 항상 serviceContextName 매개 변수를 OrganizationServiceContext포함해야 합니다. 생성된 메시지 클래스에는 이 파일에 설정된 속성이 필요합니다. 설정하지 않은 경우 발생하는 오류에 대해 자세히 알아봅니다.
참고하십시오
Microsoft Power Platform CLI 명령 그룹
Microsoft Power Platform CLI 개요