0

내 데이터베이스에서 복합 엔티티에 고유 한 키 제약 (CustomerId, Name)이 있습니다. 데이터베이스에 변경 사항을 제출하기 전에 고유 제한 조건이 유지되었는지 테스트하고 싶습니다. 사용자는 엔티티의 Name 특성을 사용자 정의 할 수 있으므로 name 특성의 유효성을 검사하는 사용자 정의 유효성 검사기를 만들고 싶습니다. 그러나이 작업을 수행하는 동안 CustomerId 속성에 대한 액세스 권한도 필요합니다. 어떻게해야합니까?두 개의 속성을 동시에 테스트하는 VBA에서 사용자 지정 유효성 검사기를 만드는 방법은 무엇입니까?

나는 Entlib 3.1 및 포함 된 VAB에 갇혀 있음을 의미하는 WCSF를 사용하지만 WCSF를 위반하지 않고 EntLib 4.1의 VAB로 전환 할 수 있습니다.

감사합니다, Egil.

답변

0

트릭은 해당 엔티티의 속성 중 하나가 아닌 엔티티에 대한 유효성 검사기를 만드는 것입니다. 다음과 같이 당신은 당신의 엔티티에 자체 검증을 작성할 수 있습니다

[HasSelfValidation] 
public class MyEntity 
{ 
    public int CustomerId { get; set; } 
    public string Name { get; set; } 

    [SelfValidation] 
    public void ValidateRange(ValidationResults results) 
    { 
     bool isUnique = [query the database here] 

     if (!isUnique) 
     { 
      results.AddResult(new ValidationResult(
       "CustomerId and Name are not unique", this, "", "", null)); 
     } 
    } 
} 

내가 VAB 3.1의 기능 세트에 익숙하지 않은 해요 말해야한다, 그래서 나는이 3.1에서 작동 100 % 확실하지 않다. 그것은 4.1 비록 작동합니다. 자체 유효성 검사가 마음에 들지 않으면 사용자 정의 유효성 검사기를 작성하여 구성 파일에 연결할 수도 있습니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 this stackoverflow answer을 참조하십시오.

관련 문제