2011-02-06 5 views
9

CodeFirst 모델의 특정 속성이 고유하다는 것을 효율적으로 검증하는 방법에 대해 알고 싶습니다. 전형적인 예는 회원의 사용자 이름 또는 표시 이름입니다.EF Codefirst는 고유 속성의 유효성을 검사합니까?

전통적으로 데이터베이스에서 고유 제약 조건을 설정하거나 시도 된 삽입 작업 중에 조회를 수행하여이 작업을 수행 할 수 있습니다. 나는 생성 후에 DB 자체에 이러한 것들을 수동으로 추가하는 방법을 알고 있으며 프레임 워크가 제공하는 스키마 매핑의 일부로이를 수행하는 방법이 있는지 알고 싶다.

UPDATE는 내가 개념적으로 나에게 조회를 수행하고 저장 방지하기 위해 객체를 무효화 할 수 있도록 할 것 DbContext,에 ValidateEntity 메소드를 오버라이드 (override) 할 수 있음을 발견했다. 데이터베이스에 고유 제한 조건 또는 유사 항목을 적용하는 방법이 있는지 궁금 할 것입니다.

답변

6

코드 첫 번째 (일반적으로 EF) 여전히은 고유 제한 조건을 기본적으로 지원하지 않습니다. this post에서 데이터베이스를 코드 첫 번째 (사용자 정의 Initializer 클래스의 SQLCommand 메서드를 통해)로 만들 때 한 번에 만들 방법을 보여 줬지만 수동으로 직접 만들지는 않습니다. 다른 방법은 당신이 제안한 ValidateEntity이지만, 어쨌든 여전히 데이터베이스에 유일한 제약 조건을 만들 것입니다.

+0

완벽하지만 내 목적을 위해 충분하지 고유 인덱스를 생성하는 클래스에 넣어 속성에 따라 달라집니다, 감사 ! – Paul

0

나는 일반적으로 code project

에서 이것에 대해 게시, 그것은 당신이

관련 문제