1

MVC3 프로젝트에서 작업하고 있습니다. SQL Server 2008에서 데이터베이스를 생성 한 다음 엔티티 데이터 모델을 사용하여 추가합니다. 이제 .edmx를 사용하여 코드를 생성하고 싶지 않습니다. 지금까지는 안정적이지 않아서 유효성 확인을 위해 예외를 할 필요가 없다고 느꼈기 때문에 클래스의 코드를 생성하지 않고 .edmx를 사용하여 유효성 검사를 직접 수행하는 방법이 있는지 궁금합니다. 서버가 필요합니다. 및 클라이언트 측 유효성 검사 건배edmx를 통해 속성 유효성 검사

답변

6

edmx에서는 수행 할 수 없습니다. 그러나 edmx 생성 클래스에 메타 데이터를 추가하는 클래스가있을 수 있습니다.

[MetadataTypeAttribute(typeof(CustomerMetadata))] 
public partial class Customer 
{ 
} 

다음은 메타 데이터가 메타 데이터 클래스 속성을했다 :

internal sealed class CustomerMetadata 
{ 
    public int ID; 

    [Required] 
    [StringLength(60)] 
    public string Name; 
} 

편집

이것은 edmx에 의해 생성 된 클래스에 클래스를 포함하는 메타 데이터를 추가합니다 : EF는 모든 클래스를 부분 클래스로 생성합니다. 즉, 같은 클래스에 다른 파일의 기능을 추가 할 수 있습니다. 이 기능을 사용하여 .net에게 메타 데이터 정보가있는 클래스가 있음을 알리는 속성을 추가합니다. 이 경우 Customer 클래스의 메타 데이터가있는 클래스는 CustomerMetadata입니다.

메타 데이터로 장식하려는 모든 속성이 있습니다. 이 경우 ID는 실제 존재하지 않아도됩니다.

+0

그래서 모델 폴더에 테이블의 동일한 이름을 가진 부분 클래스를 추가해야하며 MetadataTypeAttribute를 사용하여 특성에 대한 유효성을 검사합니다. 진행 방법을 잘 알고 있는지 모르겠다. – Yasminette

+0

좀 더 자세한 설명을 위해 내 게시물을 업데이트했습니다. – linkerro

+0

완벽하게 작동합니다. –

0

(나는 이것을 주석으로 추가했지만 충분한 평판 포인트가 아직 없음) 부분 클래스의 네임 스페이스가 올바른 대소 문자를 포함하여 EF 생성 클래스의 네임 스페이스와 정확히 일치하는지 확인하십시오.