1

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でこれを行う良い方法はありますか?

4

1 に答える 1

0

挿入をコードで行うように移行することをお勧めします。person オブジェクトをパラメーターとして受け入れる account メソッドを作成して、person オブジェクトを account テーブルに追加します。さらに大きくして、そのテーブルへの挿入を処理するものにインターフェイスをラップして、それが常に発生するようにすることもできます。

ブレイク ロジャース Onyxtek Software Solutions, LLC

于 2011-04-22T14:01:48.560 に答える