这里是我的模型的两个实体,具有流畅的entityframework配置
Player.cs
public class Player
{
public string Name { get; set; }
public virtual Statistics Statistics { get; set; }
}
Statistics.cs
public class Statistics
{
public int GamePlayed { get; set; }
public int Assists { get; set; }
public int Goals { get; set; }
}
DbContextClass
modelBuilder.Entity<Player>()
.HasOptional(x => x.Statistics)
.WithMany()
.Map(x => x.MapKey("StatisticsId"));
最后,在我的播放器表上创建一个名为'StatisticsId'的foreignKey即可。我想要一个玩家删除,cascadeDelete相关的统计数据。这是我的问题,将WillCascadeDelete添加到我的语句
modelBuilder.Entity<Player>()
.HasOptional(x => x.Statistics)
.WithMany()
.Map(x => x.MapKey("StatisticsId"))
.WillCascadeOnDelete(true);
在删除统计信息时删除播放器。如何通过将StatisticsId foreignKey保留在播放器表上来使这项工作相反?
这里的要点是Statistics
可以'独自生活',而不会有Player
相关。是否可以将实体框架设置为自动删除相关的Statistics
,或者这必须手动完成?
答案 0 :(得分:-1)
我假设您只需要将WillCascadeOnDelete
添加到Statistics
:
modelBuilder.Entity<Statistics>()
.WillCascadeOnDelete(true);
我还没有测试过。