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;}
...
}