【问题标题】:Entity Framework cascade delete configuration实体框架级联删除配置
【发布时间】:2016-11-03 15:06:36
【问题描述】:

这是我的模型的两个实体,具有流畅的实体框架配置

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"));

最后,在我的 Player Table 上创建了一个名为“StatisticsId”的外键,这没问题。我想删除玩家,以级联删除相关统计数据。这是我的问题,将 WillCascadeDelete 添加到我的语句中

    modelBuilder.Entity<Player>()
                .HasOptional(x => x.Statistics)
                .WithMany()
                .Map(x => x.MapKey("StatisticsId"))
                .WillCascadeOnDelete(true);

在删除统计信息时导致删除播放器。我怎样才能通过将 StatisticsId foreignKey 保留在播放器表上来使这项工作以相反的方式工作?

这里的要点是Statistics 可以“独自生活”而没有任何Player 相关。是否可以将实体框架设置为自动删除相关的Statistics 或者必须手动完成?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    我假设您只需将 WillCascadeOnDelete 添加到 Statistics

    modelBuilder.Entity<Statistics>()
                .WillCascadeOnDelete(true);
    

    我还没有测试过。

    【讨论】:

      猜你喜欢
      • 2014-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多