2011-10-10 2 views
0

안녕하세요 저는 C#을 사용하여 MVC 3에서 코딩하고 있습니다.복합 키가 데이터베이스에 없는지 확인하는 방법은 무엇입니까?

나는 Tutor_Student라고 불리는 교사와 학생 사이의 Associating table을 채우고 있습니다. 이 테이블의 Primary Key는 tutorId와 studentId, 부모 테이블 및 Subject로 구성됩니다. 사용자가 웹 사이트에서이 테이블을 채 웁니다

 [Key, Column(Order = 0)] 
     public string tutorID { get; set; } 
     [Key, Column(Order = 1)] 
     public string studentID { get; set; } 
     [Key, Column(Order = 2)] 
     public string Subject { get; set; } 

내가 복합 기본 키가 이미 기본 키를 방지하기 위해 데이터베이스에 존재하지 않음을 확인하려면 다음과 같이 내가 내 모델이 무엇인지

입니다 위반.

이렇게하는 방법이 있습니까? 미리 감사드립니다. 정말 고마워요 ...

답변

3

이 문제를 해결하는 한 가지 방법은 열에 unique constraint이 있고 SQL Server에서 유효성 검사를 처리하도록하는 것입니다. 그러면 저장하고 정상적으로 처리 할 때 catchSqlException을 던져 버릴 수 있습니다. SqlException 클래스에는 Errors 컬렉션과 같이 무엇이 잘못되었는지 파악할 수있는 유용한 정보가 많이 포함되어 있습니다.

이 문제를 해결하는 또 다른 방법은 이러한 종류의 항목에 대한 도우미 메서드가 포함 된 데이터 액세스 계층을 만드는 것입니다.

이 방법의 정확한 구현은 데이터베이스 서버와 같은,하지만 저장소 패턴을 따라에 따라
bool Exists(string tutorID, string studentID, string subject) 

, 당신은 필요한 수준을 얻을 다음 repository pattern에서, 데이터 저장소는 다음과 같은 방법을 가지고 자연의 장소입니다 이러한 유형의 문제를 구조화되고 직관적 인 방식으로 처리하기 위해 애플리케이션에서 분리해야합니다.

관련 문제