EF 4 で回避しようとしている従来のデータベース設計があります。基本的に、相互に参照する 2 つのテーブルがあり、新しいエントリを追加しようとすると問題が発生します。
私の構造はこれです:
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])
Person には Account (AccountId) への外部キーがあり、Account には Person (PrimaryPersonId) への外部キーがあります。新しいアカウントと個人を作成する場合、これは明らかに問題です。現在の解決策は、Person テーブルで挿入トリガーを使用して、個人が作成されたときに Account テーブルを新しい PrimaryPersonId で更新することです。
トリガーを必要とせず、可能であればこのコードをモデルに取り入れて、「魔法」が発生しないようにしたいと思います。EF 4でこれを行う良い方法はありますか?