戳戳猫的小窝
更新日志
关于
# 数据表 在**学生信息管理系统**中,共有4张表需要创建。 - **专业表**:存储专业相关信息 - **年级表**:存储年级相关信息 - **班级表**:存储班级相关信息 - **学生表**:存储学生相关信息 **E-R图**如下所示。 ![13bc99e8-e17e-4739-bab1-94e06334e374](https://image.nyazira.top/Article/13bc99e8-e17e-4739-bab1-94e06334e374.png) 其中,1个专业包含多个班级,1个年级也包含多个班级,年级和专业之间是多对多的关系,1个班级中包含多个学生。 # 创建模型文件夹 在项目根目录下创建一个名为**Models**的文件夹。 右键点击Models文件夹,选择【**添加**-**类**】,选择**类**,名称填写**Major.cs**,点击**添加**。 重复此过程,创建**Grade.cs**、**Class.cs**、**Student.cs**。 > 注意Class要大写,小写的class是C#的关键字 # 创建专业模型 在E-R图中,专业只有一个专业名称属性,因此,需要在专业模型中添加一个**string**类型的**Name**属性。 除此之外,模型还需要一个主键,因此,还需要添加一个**Guid**类型的**Id**属性。 > Guid是一个128位的随机数,基本上不用担心会重复 最后,由于专业和班级是1对多的关系,因此还需要添加一个**班级列表**类型的属性作为**导航**。 最终代码如下: ``` public class Major { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public List<Class> Classes { get; } = new List<Class>(); } ``` # 创建年级模型 年级模型和专业模型几乎一样,因此可以直接将专业模型的代码复制,最终代码如下: ``` public class Grade { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public List<Class> Classes { get; } = new List<Class>(); } ``` # 创建班级模型 首先需要在班级模型中添加一个**Name**属性和**Id**属性。 由于专业和班级之间是1对多的关系,还需要添加**Guid**类型的**MajorId**作为外键。 由于年级和班级之间也是1对多的关系,也需要添加**Guid**类型的**GradeId**作为外键。 除此之外,还需要添加**班级模型**到**专业模型**以及**班级模型**到**年级模型**的导航,因此还需要添加一个**Major**类型的属性**Major**以及一个**Grade**类型的属性**Grade**。 最后,由于班级和学生之间是1对多的关系,因此还需要添加一个**学生列表**类型的属性作为**导航**。 最终代码如下: ``` public class Class { public Guid Id { get; set; } public string Name { get; set; } = string.Empty; public Guid MajorId { get; set; } public Guid GradeId { get; set; } public Major Major { get; set; } = null!; public Grade Grade { get; set; } = null!; public List<Student> Students { get; } = new List<Student>(); } ``` # 创建学生模型 首先还是需要一个**Guid**类型的**Id**作为主键。 然后,根据E-R图,还需要创建一个学号属性**Number**。学号用**int**类型肯定是不够的,因为会超范围,因此可以使用**long**类型。但是,极端情况下long类型可能也无法存储某些学校的学号,因此这里我最终选择了**string**类型存储学号。 姓名属性**Name**还是使用**string**类型。 性别属性**Gender**可以使用bool类型存储。 生日属性**Birthday**可以使用DateTime类型存储。 然后添加班级模型的**Id**作为外键,以及添加**学生模型**到**班级模型**的**导航**。 最终代码如下: ``` public class Student { public Guid Id { get; set; } public string Number { get; set; } = string.Empty; public string Name { get; set; } = string.Empty; public bool Gender { get; set; } public DateTime Birthday { get; set; } public Guid ClassId { get; set; } public Class Class { get; set; } = null!; } ```
创建模型