이 문서는 해당 기사의 재인쇄물이기 때문에 출처가 표시되어 있으니, 이전에 출처를 찾지 못하거나 다른 이유로 이전된 문서가 있다면 양해 부탁드립니다.
기분이 상하면 저에게 연락하시거나 삭제하시거나 출처를 밝혀 주세요.
예전에는 좋은 기사를 모으고 싶었지만, 가끔 연결이 끊기도 해서 좋은 기사를 만나면 바로 제 자신에게 가게 됩니다.
원본 출처 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(예: 메시지); }
결과는 아래 그림에 나와 있습니다.
계속 알려지지 않은 채...
보충: 문제 해결.
이유: 기록된 데이터가 표 설정과 일치하지 않습니다.
제 이유는 특정 단계에서 기록된 데이터가 비어 있지만, 원래 테이블은 "비어 있을 수 없음"으로 설정되어 있어서 이 단계가 실행될 때 예외가 있기 때문입니다.
제가 너무 부주의해서 데이터를 볼 때 다른 작업에 쓰인 것을 보고 이 문제를 전혀 생각하지 못했습니다.
|