Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 级联删除在代码优先实体框架(5.0版)中发生_C#_Database_Entity Framework_Ef Code First - Fatal编程技术网

C# 级联删除在代码优先实体框架(5.0版)中发生

C# 级联删除在代码优先实体框架(5.0版)中发生,c#,database,entity-framework,ef-code-first,C#,Database,Entity Framework,Ef Code First,我有以下两门课 第1类: [Table("players")] public class Player { [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } <summary> /// Video Location w.r.t. Current Screen (Top) /// </sum

我有以下两门课

第1类:

[Table("players")]
public class Player
{
    [Key, Column("id"), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    <summary>
    /// Video Location w.r.t. Current Screen (Top)
    /// </summary>
    [Column("top")]
    public double Top { get; set; }
    /// <summary>
    /// Video Location w.r.t. Current Screen (Width)
    /// </summary>
    [Column("width")]
    public double Width { get; set; }
    /// <summary>
    /// Video Location w.r.t. Current Screen (Height)
    /// </summary>
    [Column("height")]
    public double Height { get; set; }




    [Column("group_id")]
    public int group_id { get; set; }

    [ForeignKey("group_id")]
    public Group Group { get; set; }
} 
我在从数据库中删除组条目时遇到问题。 每当我删除任何组时,属于该组的所有玩家都会被自动删除。 我首先在Entity-Framework5.0中使用代码。
非常感谢您提供的任何帮助。

您需要专门映射该场景。你可以这样做:

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {            
        modelBuilder.Entity<Player>().HasOptional(x => x.Group).WithMany().WillCascadeOnDelete(false);
    }

这将使播放器上的组成为可选的,这意味着它可以在不引用组的情况下存在,并且还将指示您的上下文不要执行级联删除

听起来数据库上的FK设置不正确,关系的方向不对。如果设置了CASCADE delete,那么如果FK错误,您将遇到麻烦。如果您没有使用FKs,那么当然应该使用。希望您没有使用实体框架设计数据库。
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {            
        modelBuilder.Entity<Player>().HasOptional(x => x.Group).WithMany().WillCascadeOnDelete(false);
    }