0

ここに画像の説明を入力
私のシナリオでは、単一のテーブルと多対多の関係があります。したがって、Player_VsMode には、Player テーブルの 2 つの外部キーがあります。1 つはプレイヤー用、2 番目は対戦相手用です。テーブル Player_VsMode に挿入しようとしているとき。Player_vsMode へのデータの挿入は問題ありませんが、Player では相手の Object の新しい行が追加されます。そして、なぜ Hell EntityFramework がこの新しい対戦相手の行を追加するのか、私には理解できません! 私のコードは

 public Void performVsMode(Player_VsMode vsMode)
    {
        Player playerFromDB = legendWarsEntities.Player.First(v => v.email == vsMode.Player.email);
        Player enemyFromDB = legendWarsEntities.Player.First(v => v.email == vsMode.Opponent.email);
        vsMode.PlayerReference.Value = playerFromDB;
        vsMode.OpponentReference.Value = enemyFromDB;
        legendWarsEntities.AddToPlayer_VsMode(vsMode);
        legendWarsEntities.SaveChanges();

    }
4

1 に答える 1

0

私はこれをお勧めしません プロジェクトマネージャーにそれが機能していると言うために回避策を行いました:)。

  Player playerFromDB = legendWarsEntities.Player.First(v => v.email == vsMode.Player.email);
        Player enemyFromDB = legendWarsEntities.Player.First(v => v.email == vsMode.Opponent.email);
        vsMode.PlayerReference.Value = playerFromDB;
        vsMode.OpponentReference.Value = enemyFromDB;
        //adding records
        legendWarsEntities.SaveChanges();
        //deleting extra Opponent Object!!!
        Player[] playerToDel = legendWarsEntities.Player.Where(v => v.email == vsMode.Opponent.email).ToArray();
        legendWarsEntities.DeleteObject(playerToDel[1]);
        legendWarsEntities.SaveChanges();
于 2012-04-12T10:30:54.253 に答える