두 개의 SQL 테이블이 있습니다. 각 테이블에는 세 개의 다른 정수 필드로 이루어진 복합 키가 있습니다. Table1에 레코드를 추가하기 위해 다음과 같이 코드를 추가했습니다.일부 상황에서 DuplicateKeyException이 throw되지 않습니다.
try
{
Table1 newRow = new Table1
{
DomainID = domainID,
ConfigurationID = configID,
ReasonID = reasonID
};
data.Table1.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}
이 내가 계획 한 정확히 어떻게 작동하고 사용자가 중복 행을 추가하려고 나는 모든 괜찮 등 그들에게 메시지를 표시 할 수있는 경우 예외를 잡는다. 그러나 (그러나 다른의 DataContext를 사용하여 다른 페이지에, 거의 동일) 표 2에 삽입 내가 가지고있는 코드,
try
{
Table2 newRow = new Table2
{
DomainID = domainID,
ConfigurationID = configID,
DirectionID = directionID
};
data.Table2.InsertOnSubmit(newRow);
data.SubmitChanges();
}
catch(DuplicateKeyException)
{
// Message to user about no duplicates allowed.
}
는 DuplicateKeyException하지만 SQLException을 발생하지 않습니다. 난 아직도 잡힌 SQLEXCEPTION에
e.Number = 2627
을 테스트 할 수 있습니다하지만 난 왜 다른 노력에처럼 혼란 스러워요 같은 큰 거래를 너무 많이하지!?
테이블 1 및 테이블 2 SQL DDL을 참조하여 DB에 필드 및 키를 설정 한 방법을 알려야합니다. – n8wrl
DataContext를 살펴보십시오. 어떤 이유로 Table2 (LINQ 측)는 제약 조건을 인식하지 못하거나 강제하지 않습니다. – Paparazzi