0

私は次の関係を持っています: テーブルの関係

そして、次のクラス (関連するプロパティのみ):

  1. Affair: (AffairID, Title, ... , AffairsGroups)
  2. グループ: (GroupID, Name, ... , AffairsGroups)
  3. AffairsGroups(AffairID、GroupID、Affair、Groups)

データベースに新しい Affair レコードを追加したいのですが、これは、AffairGroups テーブルにも追加されます (既知の GroupID を使用)。次の方法で試しました。

private Boolean addAffairToDatabase(Affair affair)
    {
        AffairDal affairContext = new AffairDal();
        affairContext.Affairs.Add(affair);
        affairContext.SaveChanges();

        AffairsGroupDal affairsGroupContext = new AffairsGroupDal();
        affairsGroupContext.AffairsGroups.Add(new AffairsGroup{ AffairID = affair.AffairID , GroupID = user.GroupID});
        affairsGroupContext.SaveChanges();
        return true;
    }

しかし、次の例外が発生します。

SqlException: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.AffairsGroups_dbo.Affairs_AffairID". The conflict occurred in database "NuixTest.DAL.AffairsGroupDal", table "dbo.Affairs", column 'AffairID'.

これらは私のコンテキストクラスです: 1.

public class AffairDal: DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<Affair>().ToTable("Affairs");
    }
    public DbSet<Affair> Affairs { get; set; }
}

2.

public class AffairsGroupDal: DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<AffairsGroup>().ToTable("AffairsGroups");
    }
    public DbSet<AffairsGroup> AffairsGroups { get; set; }
}

私は何を間違っていますか?ありがとう

4

1 に答える 1