사용자 지정 데이터 생성기에 대한 고려 사항
사용자 지정 데이터 생성기를 만들어 Visual Studio의 데이터 생성 기능을 확장할 수 있습니다. 표준 데이터 생성기로 만족시킬 수 없는 비즈니스 규칙이 있는 경우 사용자 지정 데이터 생성기를 만들 수 있습니다. 자세한 내용은 데이터 생성기를 사용하여 데이터베이스의 테스트 데이터 생성을 참조하십시오.
사용자 지정 데이터 생성기를 만들기 전에 다음 문제를 고려해야 합니다.
데이터 생성기 이름 지정
사용자 지정 데이터 생성기를 만들 때는 해당 사용자 지정 데이터 생성기에 대해 사용자 인터페이스에 표시되는 이름을 제어할 수 있습니다. 여러 데이터 생성기에 동일한 이름을 지정하면 안 됩니다. 또한 기본 제공 데이터 생성기의 이름과 동일한 이름을 사용자 지정 생성기에 지정해도 안 됩니다.
선언 API 사용 시의 이름 지정
사용자 지정 데이터 생성기에서 사용할 디자이너를 선언하지 않으면 DefaultDistributionDesigner를 만들 때 데이터 생성기의 클래스 이름이 표시 이름으로 나타납니다.
사용자 지정 데이터 생성기에 대해 사용자 인터페이스에 표시되는 생성기 이름을 지정하려면 사용자 지정 데이터 생성기 클래스에 다음 특성을 적용합니다.
[System.ComponentModel.DisplayName("YourGeneratorName")]
기본 API 사용 시의 이름 지정
사용자 지정 디자이너를 만드는 경우 이 디자이너의 Name 속성에서 반환된 값이 사용자 지정 데이터 생성기에 대해 사용자 인터페이스에 표시됩니다. DefaultGeneratorDesigner에서 사용자 지정 디자이너를 파생시키면 DisplayName 특성이 사용됩니다. 그렇지 않고 IGeneratorDesigner에서 사용자 지정 디자이너를 파생시키면 DisplayName 특성이 무시됩니다.
데이터 생성기의 DisplayName 특성을 지정하려면 데이터 생성기 클래스에 다음 특성을 추가해야 합니다.
[System.ComponentModel.DisplayName("YourGeneratorName")]
사용자 지정 데이터 생성기를 SQL 데이터 형식의 기본 데이터 생성기로 지정
사용자 지정 데이터 생성기를 SQL 데이터 형식의 기본 데이터 생성기로 할당할 수 있습니다. 자세한 내용은 방법: 열 형식에 대한 기본 생성기 변경을 참조하십시오.
사용자 지정 생성기를 SQL 데이터 형식의 기본 데이터 생성기로 할당할 때는 다음과 같은 제한 사항이 있습니다.
UNIQUE 제약 조건을 가질 수 없는 모든 SQL 데이터 형식에 사용자 지정 데이터 생성기를 할당할 수 있습니다. 예를 들어, 이미지 데이터 형식에 사용자 지정 데이터 생성기를 할당할 수 있습니다.
모든 SQL 데이터 형식에 필터 특성이 없는 사용자 지정 데이터 생성기를 할당할 수 있습니다.
사용자 지정 데이터 생성기에서 고유 값을 생성할 수 있는 경우에만 UNIQUE 제약 조건을 가질 수 있는 SQL 데이터 형식에 필터 특성이 있는 사용자 지정 데이터 생성기를 할당할 수 있습니다. 이러한 종류의 생성기를 디자인하려면 사용자 지정 데이터 생성기 클래스에 다음 특성을 적용합니다.
<GeneratorStyles(DesignerStyles:=GeneratorDesignerStyles.CanProduceUniqueValues)> _ Public Class TestGenerator Inherits Generator End Class
[GeneratorStyles(DesignerStyles = GeneratorDesignerStyles.CanProduceUniqueValues)] public class TestGenerator:Generator { }
사용자 지정 디자이너
기본적으로 사용자 지정 데이터 생성기는 기본 디자이너를 사용합니다.
사용자 지정 데이터 생성기에 사용자 지정 디자이너를 사용하려는 경우에는 사용자 지정 데이터 생성기 클래스에 추가 특성을 지정해야 합니다.
<Generator(GetType(CustomDesignerType))> _
Public Class TestGenerator
Inherits Generator
End Class
[Generator(typeof(CustomDesignerType))]
public class TestGenerator:Generator
{
}
자동 할당 입력 속성
AutoAssignedInput 특성을 사용하여 사용자 지정 데이터 생성기에 대해 입력 속성을 하나 이상 표시하는 경우 해당 속성을 읽기 전용으로 설정해야 합니다. 자동 할당된 입력이 있는 속성에는 setter가 있어야 하지만 InputDescriptor에서 ReadOnly 속성이 true로 설정되어 있어야 합니다.
자동 할당으로 표시하는 대부분의 속성은 데이터 생성 계획을 열 때 해당 값이 다시 설정됩니다. 예를 들어 Collation, Data Type, MaxLength, Nullable 및 RowsToGenerate 속성은 자동 할당으로 표시되면 모두 다시 설정됩니다. 반면 Unique, Seed 및 PercentageNull 속성은 자동 할당으로 표시되더라도 다시 설정되지 않습니다.
값이 다시 설정되는 속성을 읽기 전용으로 표시하면 사용자 지정 데이터 생성기 사용자의 혼란을 방지할 수 있습니다.