Работа с циклической ссылкой в ​​EF 4 - PullRequest
1 голос
/ 22 апреля 2011

У меня есть устаревший дизайн базы данных, который я пытаюсь обойти с помощью 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). При создании новой учетной записи и лица, это, очевидно, проблема. В настоящее время решение состоит в том, чтобы использовать триггер вставки в таблице Person, который обновляет таблицу Account с новым PrimaryPersonId при создании лица.

Я бы хотел избежать необходимости в триггерах и перенести этот код в модель, если это возможно, чтобы было меньше "волшебства". Есть ли хороший способ сделать это с EF 4?

1 Ответ

0 голосов
/ 22 апреля 2011

Я бы предложил перейти к вставке в коде.Создайте метод учетной записи, который принимает объект-личность в качестве параметра), чтобы добавить объект-личность в таблицу учетных записей.Вы могли бы даже пойти дальше и обернуть интерфейс чем-нибудь, что обрабатывает вставку в эту таблицу, чтобы вы всегда могли убедиться в этом.

Блейк Роджерс Onyxtek Software Solutions, LLC

...