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

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

1 ответ

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

Блейк Роджерс Оникстек Software Solutions, LLC

Другие вопросы по тегам