2012-03-09 3 views
0

EDS와 새로워졌습니다. VWD 2011.엔터티 데이터 원본. 새 레코드를 추가하십시오. 먼저 "찾는"방법이 있는지 먼저 확인하십시오

차량 파일에 차량 추가. PK는 회사 번호 (char 5) 및 차량 코드 (char 15)입니다. 기본 키와 엔티티 데이터 소스 만있는 세부 정보보기를 사용하면 데이터 키 이름을 사용하여 작업 할 수 있습니다.

EDS 삽입 이벤트에서 파일에 들어가서 입력 된 내용이 있는지 먼저 확인합니다. 새로운 코드와 물론 폭탄이 중복되면 완벽 해집니다.

오래된 시각적 foxpro 프로그래머, 그냥 이것을 배우십시오. EDS는 이미 데이터베이스에있는 모든 파일과 올바른 파일을 열었습니다 .. 어쩌면 내가 count() "where"조건을 수행하면 0 일 수도 있고 어쩌면 새로운 것일 수도 있습니다 ... foxpro SEEK COMPANYNUMBER + VEHCODE와 if if 거기에 추가 할 수 있습니다 ...

모든 입력 주셔서 감사. 아침 2시 19 분에 .. 재미있는 새로운 것을 가르쳐주는 재미 ... 프랭크 C :

+1

어쩌면 좋은 밤의 휴식 후이 질문을 다시 읽어 다른 사람이 그것을 이해할 상상하려고합니다. –

답변

0

당신은 나가서 레코드가 이미 존재하는지 확인하고 그렇지 않은 경우에만 추가하십시오. 아마도 더 나은 방법은 중복 레코드를 저장하는 것이 불가능하도록 필드 조합에 고유 한 인덱스를 갖는 것입니다. 그런 다음 EF가 저장 변경이 실패한 시점을 알려줍니다. 이렇게하면 삽입 할 때마다 DB를 두 번 호출하지 못하게됩니다.

예 :

try 
{ 
    if (ModelState.IsValid) 
    { 
     db.Vehicles.Add(vehicle); 
     db.SaveChanges(); 
    } 
} 
catch (DataException) 
{ 
    //Log the error (add a variable name after DataException) 
    ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator."); 
}