다음을 통해 공유


엔터티 클래스에 유효성 검사 추가

비고

클래스 및 관련 클래스는 DataSet 2000년대 초반의 레거시 .NET Framework 기술로, 애플리케이션이 데이터베이스와 연결이 끊긴 동안 애플리케이션이 메모리의 데이터로 작업할 수 있도록 합니다. 이 기술은 사용자가 데이터를 수정하고 변경 내용을 데이터베이스에 다시 유지할 수 있도록 하는 앱에 특히 유용합니다. 데이터 세트는 입증된 성공적인 기술이지만 새 .NET 애플리케이션에 권장되는 방법은 Entity Framework Core를 사용하는 것입니다. Entity Framework는 테이블 형식 데이터를 개체 모델로 사용하는 보다 자연스러운 방법을 제공하며 더 간단한 프로그래밍 인터페이스를 제공합니다.

엔터티 클래스의 유효성을 검사하는 프로세스는 데이터 개체에 입력된 값이 개체 스키마의 제약 조건과 애플리케이션에 대해 설정된 규칙을 준수하는지 확인하는 프로세스입니다. 기본 데이터베이스에 업데이트를 보내기 전에 데이터의 유효성을 검사하면 오류를 줄이는 것이 좋습니다. 또한 애플리케이션과 데이터베이스 간의 잠재적 왕복 횟수를 줄입니다.

Visual Studio의 LINQ to SQL 도구는 사용자가 전체 엔터티의 삽입, 업데이트 및 삭제 중과 개별 열 변경 중 및 이후에 실행되는 디자이너 생성 코드를 확장할 수 있는 부분 메서드를 제공합니다.

비고

이 항목에서는 O/R 디자이너를 사용하여 엔터티 클래스에 유효성 검사를 추가하는 기본 단계를 제공합니다. 특정 엔터티 클래스를 참조하지 않고 이러한 제네릭 단계를 따르기 어려울 수 있으므로 실제 데이터를 사용하는 연습이 제공됩니다.

특정 열의 값 변경 내용에 대한 유효성 검사 추가

이 절차에서는 열의 값이 변경되면 데이터의 유효성을 검사하는 방법을 보여줍니다. 유효성 검사는 사용자 인터페이스 대신 클래스 정의 내에서 수행되므로 값으로 인해 유효성 검사가 실패하는 경우 예외가 throw됩니다. 열 값을 변경하려는 애플리케이션의 코드에 대한 오류 처리를 구현합니다.

비고

이 문서의 지침은 Visual Studio에서 사용할 수 있는 IDE(대화형 개발 환경)의 최신 버전을 보여 줍니다. 컴퓨터에 일부 사용자 인터페이스 요소에 대한 다른 이름 또는 위치가 표시될 수 있습니다. 다른 버전의 Visual Studio 또는 다른 환경 설정을 사용할 수 있습니다. 자세한 내용은 IDE 개인 설정참조하세요.

열 값이 변경되는 동안 데이터의 유효성을 검사하려면

  1. O/R 디자이너에서 새 LINQ to SQL 클래스 파일(.dbml파일)을 열거나 만듭니다. (솔루션 탐색기.dbml에서 파일을 두 번 클릭합니다.)

  2. O/R 디자이너에서 유효성 검사를 추가할 클래스를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 선택합니다.

    선택한 엔터티 클래스에 대한 부분 클래스를 사용하여 코드 편집기가 열립니다.

  3. partial 클래스에 커서를 위치시킵니다.

  4. Visual Basic 프로젝트의 경우:

    1. 메서드 이름 목록을 확장합니다.

    2. 유효성 검사를 추가하려는 열 에 대한 OnCOLUMNNAMEChanging 메서드를 찾습니다.

    3. OnCOLUMNNAMEChanging partial 클래스에 메서드가 추가됩니다.

    4. 다음 코드를 추가하여 먼저 값이 입력되었는지 확인한 다음, 열에 입력된 값이 애플리케이션에 허용되는지 확인합니다. 인수에 value 제안된 값이 포함되어 있으므로 논리를 추가하여 유효한 값인지 확인합니다.

      If value.HasValue Then
          ' Add code to ensure that the value is acceptable.
          ' If value < 1 Then
          '    Throw New Exception("Invalid data!")
          ' End If
      End If
      

    C# 프로젝트의 경우:

    C# 프로젝트는 이벤트 처리기를 자동으로 생성하지 않으므로 IntelliSense를 사용하여 열 변경 부분 메서드를 만들 수 있습니다. 입력 partial을 입력하고 스페이스바를 눌러 사용 가능한 부분 메서드 목록에 액세스하세요. 유효성 검사를 추가할 열의 열 변경 메서드를 클릭합니다. 다음 코드는 열 변경 부분 메서드를 선택할 때 생성되는 코드와 유사합니다.

    partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value)
        {
           throw new System.NotImplementedException();
        }
    

엔터티 클래스에 업데이트 유효성 검사 추가

변경 중에 값을 확인하는 것 외에도 전체 엔터티 클래스를 업데이트하려고 할 때 데이터의 유효성을 검사할 수도 있습니다. 업데이트 시도 중 유효성 검사를 통해 비즈니스 규칙에 필요한 경우 여러 열의 값을 비교할 수 있습니다. 다음 절차에서는 전체 엔터티 클래스를 업데이트하려고 할 때 유효성을 검사하는 방법을 보여줍니다.

비고

엔터티 클래스를 온전하게 하기 위한 업데이트의 유효성 검사 코드는 DataContext 클래스의 부분 클래스에서 실행됩니다(특정 엔터티 클래스의 부분 클래스가 아닌).

엔터티 클래스를 업데이트하는 동안 데이터의 유효성을 검사하려면

  1. O/R 디자이너에서 새 LINQ to SQL 클래스 파일(.dbml파일)을 열거나 만듭니다. (솔루션 탐색기.dbml에서 파일을 두 번 클릭합니다.)

  2. O/R 디자이너에서 빈 영역을 마우스 오른쪽 단추로 클릭하고 코드 보기를 클릭합니다.

    코드 편집기가 DataContext에 대한 부분 클래스로 열립니다.

  3. DataContext의 부분 클래스에 커서를 놓습니다.

  4. Visual Basic 프로젝트의 경우:

    1. 메서드 이름 목록을 확장합니다.

    2. UpdateENTITYCLASSNAME을 클릭합니다.

    3. UpdateENTITYCLASSNAME partial 클래스에 메서드가 추가됩니다.

    4. 다음 코드와 같이 인수를 instance 사용하여 개별 열 값에 액세스합니다.

      If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then
          Dim ErrorMessage As String = "Invalid data!"
          Throw New Exception(ErrorMessage)
      End If
      

    C# 프로젝트의 경우:

    C# 프로젝트는 이벤트 처리기를 자동으로 생성하지 않으므로 IntelliSense를 사용하여 부분 UpdateCLASSNAME 메서드를 만들 수 있습니다. 입력 partial을 입력하고 스페이스바를 눌러 사용 가능한 부분 메서드 목록에 액세스하세요. 유효성 검사를 추가할 클래스의 업데이트 메서드를 클릭합니다. 다음 코드는 부분 메서드를 선택할 때 생성되는 코드와 UpdateCLASSNAME 유사합니다.

    partial void UpdateCLASSNAME(CLASSNAME instance)
    {
        if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))
        {
            string ErrorMessage = "Invalid data!";
            throw new System.Exception(ErrorMessage);
        }
    }