이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14748|회답: 0

[해결됨] 한 개 이상의 개체에 대해 검증이 실패합니다. 자세한 내용은 EntityValidationErrors 속성을 참조하세요.

[링크 복사]
게시됨 2015. 10. 8. 오후 8:47:51 | | |
이 문서는 해당 기사의 재인쇄물이기 때문에 출처가 표시되어 있으니, 이전에 출처를 찾지 못하거나 다른 이유로 이전된 문서가 있다면 양해 부탁드립니다.

기분이 상하면 저에게 연락하시거나 삭제하시거나 출처를 밝혀 주세요.

예전에는 좋은 기사를 모으고 싶었지만, 가끔 연결이 끊기도 해서 좋은 기사를 만나면 바로 제 자신에게 가게 됩니다.

원본 출처 http://blog.csdn.net/snowinfish/article/details/11567301



VS2012에서 ADO.NET 엔티티 모델에 데이터를 쓸 때 "DbEntityValidationException 처리되지 않음" 및 "하나 이상의 엔티티 검증 실패"라는 메시지가 계속 발생합니다. 자세한 내용은 EntityValidationErrors Properties를 참조하세요.



다음 두 엔터를 직접 테스트했는데, 주로 "operate911"에서 발생하는 오류였습니다.

온라인에서 정보를 확인하고 다음 기사를 참고했습니다.

EntityValidationErrors 세부 정보를 확인하는 방법의 우회 방법

http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html

하지만 예외를 작성할 때 시스템은 "DbEntityValidationException"이 없는데, 이는 네임스페이스 참조가 부족한 것으로 추정됩니다.

그래서 덧붙였습니다:

[샤프] 평면 보기
System.Data.Validation을 사용;  

해당 절차는 다음과 같이 수정됩니다:
[샤프] 평면 보기
시도해  
{ 존재들. Operate911.Add(operate911);  
    존재들. 저장변경();  
}  
catch (DbEntityValidationException dbEx)   
{  

}  
Start, 예외 프롬프트 없음, "operate911"이 데이터베이스 테이블에 데이터를 쓰지 않습니다.
확인 이유는 보조 프로그램을 작성할 때 빈 상태가 허용되지 않는 열에 대한 데이터 채움이 없기 때문이며, 수정 후 프로그램이 시작되어 테스트가 성공하기 때문입니다.



하지만 예외를 작성하지 않는다면, 계속 상단 오류를 프롬프트하세요.

더불어, "catch (DbEntityValidationException dbEx)" 문장 뒤에 따르는 매개변수 "dbEx"는 쓰기 없이 작성할 수 있습니다.

계속 알려지지 않은 채...



09.12 부록:

위의 try와 catch는 잘못 쓰여 있어, 예외가 던지지 않고 다음과 같이 변경됩니다:


[샤프] 평면 보기
시도해  
{ var operateSpt = new OperateSpt(ymd, timeNow, Operate);  
        존재들. OperateSpts.Add(operateSpt);  
        존재들. 저장변경();  
}  

catch (DbEntityValidationException ex)  
{  
    MessageBox.Show(예: 메시지);  
}  

결과는 아래 그림에 나와 있습니다.


계속 알려지지 않은 채...



보충: 문제 해결.

이유: 기록된 데이터가 표 설정과 일치하지 않습니다.

제 이유는 특정 단계에서 기록된 데이터가 비어 있지만, 원래 테이블은 "비어 있을 수 없음"으로 설정되어 있어서 이 단계가 실행될 때 예외가 있기 때문입니다.

제가 너무 부주의해서 데이터를 볼 때 다른 작업에 쓰인 것을 보고 이 문제를 전혀 생각하지 못했습니다.





이전의:전평과 메이투안은 상호 이익과 윈윈을 위해 합병할 예정입니다.
다음:루트 디렉터리를 얻기 위한 방법들의 집합을 ASP.NET
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com