0

アラートと受信者の 2 つのグループに分類される 4 つのテーブル/エンティティがあります。グループのいずれかのエンティティを、他のグループのいずれかのエンティティにマップできます (アラートには、多数の受信者と受信者グループなどを含めることができます)。

テーブル:

  • アラート
  • AlertGroups (アラートとの 1 対多の関係)
  • 受信者
  • RecipientGroups (受信者との多対多の関係)

4 つのジョイント可能オブジェクト (AlertRecipients、AlertRecipientGroups など) を作成する代わりに、4 つの列を持つ 1 つの結合テーブルを作成したいと考えています。各列は、エンティティ タイプの 1 つの null 許容 FK です。

SQL でテーブルを作成し、Fluent API を使用して次のようにコンテキストを設定しました。

modelBuilder.Entity<AlertGroup>()
                .HasMany(ag => ag.RecipientGroups)
                .WithMany(rg => rg.AlertGroups)
                .Map(m => m.ToTable("AlertRecipients")
                    .MapLeftKey("AlertGroupID")
                    .MapRightKey("RecipientGroupID"));

            modelBuilder.Entity<AlertGroup>()
                .HasMany(ag => ag.Recipients)
                .WithMany(rg => rg.AlertGroups)
                .Map(m => m.ToTable("AlertRecipients")
                    .MapLeftKey("AlertGroupID")
                    .MapRightKey("RecipientID"));

しかし、私はこのエラーが発生します:

指定されたスキーマは無効です。エラー:

(251,6) : エラー 0019: スキーマ 'dbo' およびテーブル 'AlertRecipients' を持つ EntitySet 'AlertGroupRecipient' は既に定義されています。各 EntitySet は、一意のスキーマとテーブルを参照する必要があります。

私がやろうとしていることを行うための回避策はありますか?

4

1 に答える 1