我看了this,所以有疑问。
我想在EF 5中做一些类似的事情,我没有看到ForeignKey属性,而是在EF5中看到了一个关联属性。
另外,有人能解释一下这是什么意思吗?
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Match>()
.HasRequired(m => m.HomeTeam)
.WithMany(t => t.HomeMatches)
.HasForeignKey(m => m.HomeTeamId)
.WillCascadeOnDelete(false);
modelBuilder.Entity<Match>()
.HasRequired(m => m.GuestTeam)
.WithMany(t => t.AwayMatches)
.HasForeignKey(m => m.GuestTeamId)
.WillCascadeOnDelete(false);
}这就是解释:
默认约定映射
主键。球队必须有两组比赛。您不能让两个FKs引用单个集合。匹配映射时不需要级联删除,因为在这些自引用多到多的情况下,它不工作。
我想做的与链接中的示例非常相似,但我不知道:
当我需要修改relationship时,主键将链接到对方,当我需要显式地使用关联来创建时
任何解释都不胜感激。
发布于 2012-07-25 06:11:40
在EF 5中,如果使用移动,可以更改迁移代码以不实现级联删除:
CreateTable(
"dbo.Match",
c => new
{
MatchId = c.Long(nullable: false, identity: true),
Description = c.String(),
HomeTeamId = c.Long(nullable: false),
})
.PrimaryKey(t => t.MatchId)
.ForeignKey("dbo.Team", t => t.HomeTeamId, cascadeDelete: false)
.Index(t => t.MatchId)
.Index(t => t.HomeTeamId);
}或者类似的东西。
https://stackoverflow.com/questions/10246455
复制相似问题