私は新しい ASP.NET MVC 4 アプリケーションを手に入れ、それをいじり始めました。過去に Entity-Framework を使用したことはありますが、Code First を使用するのはこれが初めてです。私が抱えている問題は、新しいレコードが追加されると、そのテーブルに一致するレコードが既にあるにもかかわらずPLAYER
、新しいレコードも追加されることです。POSITIONS
コントローラ
Player player = new Player();
player.PlayerName = "Bob";
PositionRepository posRepo = new PositionRepository();
player.PlayerPosition = posRepo.Get(1);
PlayerRepository playerRepo = new PlayerRepository();
playerRepo.Add(player);
プレイヤーレポ
public Player Add(Player player)
{
_db.Players.Add(player);
_db.SaveChanges();
return player;
}
ポジションレポ
public Position Get(int id)
{
return _db.Positions.SingleOrDefault(r => r.Id == id);
}
役立つ場合は、Player クラスと Position クラスのコードも含めることができます。
要約すると、新しいPLAYER
レコードを追加するときに、既存のレコードを参照する必要がありPOSITION
ます。POSITION
上記の場合、最初のレコードを取得するだけです。代わりに、POSITION
プレーヤーの新しいレコードが作成されます。
興味深いことに、ループ内で複数のプレーヤーを作成すると、新しいPOSITION
レコードは 1 つだけ作成されます。POSITION
新しいレコードを作成するのではなく、データベースに既にあるレコードを使用したいので、これはまだ問題です。