C# 级联删除在代码优先实体框架(5.0版)中发生
我有以下两门课 第1类: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
[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);
}