【发布时间】:2013-01-22 12:41:13
【问题描述】:
我正在使用实体框架开发一个简单的 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 时是否有语法错误。
任何帮助将不胜感激。
【问题讨论】:
标签: c# .net entity-framework