2011-09-26 2 views
2

"연락처"테이블에 외국어로 "Issues"테이블이 있습니다. 이상적으로 새 이슈가 추가되면 사용자는 드롭 다운에서 연락처를 선택해야합니다 그러나 어떤 경우에는 연락처가 이미 존재하지 않을 수 있으므로 사용자는 최소한의 새로운 연락처 정보를 추가하여 데이터베이스에 문제를 전달할 수 있습니다 (지원 데스크 응용 프로그램이므로 운영자에게 속도가 중요합니다). 연락처 데이터는 나중에 정리됩니다.Entity Framework (4.0) - 외래 키를 사용하여 새 레코드 추가

코드에서 우리는 새 연락처를 검색하고 Entity Framework를 사용하여 데이터베이스에 새 연락처를 만듭니다. 다음은 업데이트 할 새 ID를 검색해야합니다. 문제 - 그래서 연락처 테이블에서 마지막으로 레코드를 추가 읽을 수 있습니다. 이 작동합니다.

그런 다음 ContactsReference.EntityKey을 사용하는 새로운 외래 키를 포함하여 Issues 레코드를 만듭니다. 우리가 이슈를 저장하면 SaveChanges 우리는 이슈 레코드를 정상적으로 얻습니다. (연락처에 대한 올바른 외래 키로) 데이터베이스에 다른 연락처 레코드가 추가됩니다.

여기서 너무 많은 작업을하고 있습니까? 또는 Entity Framework가 테이블 간의 데이터 링크 추가 및 관리를 올바르게 처리 할 수 ​​있어야합니까?

답변

3

단일 트랜잭션에서 두 가지 작업을 모두 수행 할 수 있습니다.

var contact = new Contact(){/*initialize properties*/}; 
var issue = new Issue(){/*initialize properties*/}; 

issue.Contact = contact; 

_context.AddToIssues(issue); 

_context.SaveChanges(); 

EF가 새 연락처를 감지하여 추가합니다.

+0

감사합니다. 우리가 잘못 생각한 것 같습니다. – user964810

관련 문제