私は、エンティティフレームワークを使用してバドミントンリーグのスコアを追跡する単純なMVCアプリケーションに取り組んでいます。次の2つのクラスがあります。
public class Game
{
public int Id { get; set; }
public Player Player1 { get; set; }
public Player Player2 { get; set; }
public int Player1Score { get; set; }
public int Player2Score { get; set; }
}
と
public class Player
{
public int Id { get; set; }
public string FirstName { get; set; }
public string Surname { get; set; }
public List<Game> Games { get; set; }
}
私が抱えている問題は、Gamesプロパティが空のリストを返すプレーヤーのインスタンスがある場合です。プレーヤーのリストをリクエストするときは、次のものを使用します。-
var players = badmintonDB.Players.Include("Games").ToList();
SOでの検索から、をオーバーライドしようとしましたOnModelCreating
。を使用した場合と使用しない場合で、次のことを試しましたMap()
。これにより、データベースに別のテーブルが作成されますが、レコードは含まれていません。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Player>().HasMany(p => p.Games).WithMany()
.Map(m =>
{
m.ToTable("PlayerGames");
m.MapLeftKey("Player_Id");
m.MapRightKey("Game_Id");
});
base.OnModelCreating(modelBuilder);
}
POCOの設計を再考する必要があるのか、オーバーライドするときに構文が間違っているのか、どこが間違っているのかわかりませんOnModelCreating
。
どんな助けでもいただければ幸いです。