我正在使用实体框架开发一个简单的 MVC 应用程序来跟踪羽毛球联赛的分数。我有以下两个课程:
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
.
任何帮助,将不胜感激。