我有两个实体:
public class Tournament
{
[Key]
public Int32 Id { get; set; }
public string Name { get; set; }
public virtual TournamentSite Site { get; set; }
}
public class TournamentSite
{
[Key]
public Int32 Id { get; set;}
public string Name { get; set; }
}
在 DbContext 中:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Tournament>()
.HasRequired<TournamentSite>(t => t.Site)
.WithRequiredDependent()
.Map(p => p.MapKey("IdSite"));
base.OnModelCreating(modelBuilder);
}
一切正常,我的意思是当我加载锦标赛时,它会获得具有正确 ID 和名称的 TournamentSite 问题是我想为特定锦标赛更改 TournamentSite。我尝试过这样的事情:
var tournament = dbContext.Tournaments.Find(1); // Get tournament with id 1
tournament.Site.Id = 2;
dbContext.SaveChanges();
我希望在 Tournament 表中,IdSite 字段现在为 2 而不是 1,但无论我做什么,用于将 Tournament 链接到 TournamentSite 的 IdSite 字段始终为 1。
欢迎任何帮助,谢谢。