EF 4로 해결하려는 레거시 데이터베이스 디자인이 있습니다. 새 항목을 추가 할 때 문제를 일으키는 두 테이블을 본질적으로 참조하고 있습니다.EF 4에서 순환 참조 다루기
내 구조는 이것이다 :
CREATE TABLE [dbo].[Account] (
[AccountId] INT IDENTITY (1, 1) NOT NULL,
[PrimaryPersonId] INT NULL,
[other columns])
CREATE TABLE [dbo].[Person] (
[PersonId] INT IDENTITY (1, 1) NOT NULL,
[AccountId] INT NOT NULL,
[other columns])
사람 계정 (통해 AccountId)에 외래 키를 가지고 계정 사람 (PrimaryPersonId)에 외부 키를 가지고있다. 새 계정과 사람을 만들 때 이것은 분명히 문제입니다. 현재 해결책은 사람이 생성 될 때 새 PrimaryPersonId로 계정 테이블을 업데이트하는 Person 테이블에 삽입 트리거를 사용하는 것입니다.
가능한 경우 트리거를 필요로하지 않으므로이 코드를 모델에 가져 와서 "마법"이 덜 발생합니다. EF 4로 이것을 할 수있는 좋은 방법이 있습니까?
이 account''에있는 두 개의 기록을 수행하고'person'는 항상 서로를 가리? '계정'의 'person'과 '(accountid = 2, primarypersonid = 3)'에'(personid = 1, accountid = 2)가있을 수 있습니까? – Quassnoi
단일 계정과 연결된 사람이 여러 명일 수 있으므로 (따라서 기본 계정이 필요함) 한 사람과 관련된 여러 계정이있을 수 없습니다. –