C# 如何将递归概念用于关系类?

C# 如何将递归概念用于关系类?,c#,C#,我有三张桌子(学校-班级-学生),我制作的模型如下 class School { private int _School_ID; // School Primary Key public int School_ID { get { return _School_ID; } set { _School_ID = value; } } public string _School_Name; private string School_Name

我有三张桌子(学校-班级-学生),我制作的模型如下

class School
{
    private int _School_ID;  // School Primary Key
    public int School_ID 
    { get { return _School_ID; } set { _School_ID = value; } }

    public string _School_Name;
    private string School_Name 
    { get { return _School_Name; } set { _School_Name = value; } }
}

class Class
{
    private int _Class_ID;  // Class Primary Key
    public int Class_ID 
    { get { return _Class_ID; } set { _Class_ID = value; } }

    public string _Class_Name;
    private string Class_Name 
    { get { return _Class_Name; } set { _Class_Name = value; } }

    private int _School_ID;  // School Foreign Key
    public int School_ID 
    { get { return _School_ID; } set { _School_ID = value; } }
}

class Student
{
    private int _Student_ID;  // Student Primary Key
    public int Student_ID 
    { get { return _Student_ID; } set { _Student_ID = value; } }

    public string _Student_Name;
    private string Student_Name 
    { get { return _Student_Name; } set { _Student_Name = value; } }

    private int _Class_ID;  // Class Foreign Key
    public int Class_ID 
    { get { return _Class_ID; } set { _Class_ID = value; } }
}
问题是:

  • 如果可能,如何使用外键创建关系类
  • 我如何使用递归概念,通过如下所示了解下层类的id,从上层类获取id
============================
1-输入学生id
2-学生(1).班级.学校

3-返回学校id

此类与家长/孩子相关的类通常具有指向“家长”的指针,以便于在对象树中上下导航


旁注:示例中显示的内容类似于DTO(数据传输对象),通常不会暴露在与数据库/其他存储对话的最内层之外。其他层上的对象不会公开诸如DB私钥/ID之类的内部细节,而是公开有用的属性(如
名称
等级
,…)。

旁注:这个概念通常称为“父/子”或“包含”,而不是“递归”。以下是“递归”数据结构-链表(列表由头组成,其余为列表)、树(根+子树集)、“组和成员”(组是其他组和成员的集合)。外键与它有什么关系?这些是类,而不是数据库表。@JohnSaunders-问题似乎在于当前的模型更多地是面向表的,而不是面向对象的。这些类都是表。@HenkHolterman:对-我试图让OP说出这一点,并澄清他所说的键和外键是什么意思。用户####-我们需要知道您的设置,这些对象是如何存储的?目前的问题是不完整的。
class Student
{
    public Class Parent {get;set;}

    public string Name {get;set;}
    ...
}