【问题标题】:EF Core 2.x: How can I compose and configure a same model class that is parent and childEF Core 2.x:如何组合和配置同一个模型类,它是父子模型
【发布时间】:2018-10-29 13:46:27
【问题描述】:

我需要一个类来存储有关Department 的数据,其中Department 有很多Divisions。关键是DepartmentDivision 具有完全相同的属性。所以我只想为此建模一个类。让我们称之为Unit。我怎样才能做到这一点?我尝试使用下面的模型。但不工作。

    public class Unit
{
    public int UnitId { get; set; }

    public string Name { get; set; }

    public int ParentId { get; set; }

    public Unit Parent { get; set; }

    public IEnumerable<Unit> Units { get; set; }
}

【问题讨论】:

  • 当你说“它不工作”时,你能给出你遇到的具体错误吗,只是说“它不工作”并没有为尝试了解你正在运行的问题提供很多起点进入。
  • 错误:在表 'Units' 上引入 FOREIGN KEY 约束 'FK_Units_Units_ParentId' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
  • 正如错误所说,您的数据库提供程序在这种情况下不支持级联删除。见:docs.microsoft.com/en-us/ef/core/saving/cascade-delete

标签: c# asp.net .net entity-framework


【解决方案1】:

我认为这是一个坏主意,因为您最终可能会遇到Division 具有Divisions 列表的情况。 您应该创建一个类 Unit,然后创建类 DepartmentDivision,它们派生自 Unit 类。

 public class Unit
{
    public int UnitId { get; set; }

    public string Name { get; set; }

}

public class Department : Unit 
{
    public IEnumerable<Division> Divisions { get; set; }
}

public class Division : Unit 
{
   public Department Department;
   public int DepartmentId;

}

【讨论】:

  • 现在您添加了更多的 2 个类。我不想为此开设一个以上的课程。
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 2018-01-29
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2017-04-23
  • 2023-03-06
相关资源
最近更新 更多