【18】ASP.NET Core MVC 中的 Model介绍

2019-07-31 10:48:13 浏览数 (1)

ASP.NET Core MVC 中的 Model

在本视频中,我们将通过一个示例讨论 ASP.NET Core MVC 中的 Model。

我们希望最终从 Student 数据库表中查询特定的学生详细信息并显示在网页上,如下所示。

MVC 中的模型包含一组表示数据的类和管理该数据的逻辑。 因此,为了表示我们想要显示的学生数据,我们使用以下 Student 类。

代码语言:javascript复制
public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ClassName { get; set; }
    }

ASP.NET Core 中的模型类不必位于 Models 文件夹中,但将它们保存在名为 Models 的文件夹中是一种很好的做法,因为以后更容易找到它们。

除了表示数据的 Student 类之外,模型还包含管理模型数据的类。 为了管理数据,即检索和保存学生数据,我们将使用以下IStudentRepository服务。 目前,我们只有一个方法 GetStudent()*通过 ID 查询学生。 随着课程的进行,我们将添加创建,更新和删除方法。

代码语言:javascript复制
 public interface IStudentRepository
    {
        Student GetStudent(int id);

    }

以下MockStudentRepository类提供了IStudentRepository接口的实现。 目前,我们正在对MockStudentRepository类中的Student 数据进行硬编码。 在我们即将发布的视频中,我们将为IStudentRepository接口提供另一种实现,该实现将从 SQL Server 数据库中检索数据。

代码语言:javascript复制
 public class MockStudentRepository : IStudentRepository
    {
        private List<Student> _studentList;

        public MockStudentRepository()
        {
            _studentList = new List<Student>()
            {
            new Student() { Id = 1, Name = "张三", ClassName = "一年级", Email = "Tony-zhang@52abp.com" },
            new Student() { Id = 2, Name = "李四", ClassName = "二年级", Email = "lisi@52abp.com" },
            new Student() { Id = 3, Name = "王二麻子", ClassName = "二年级", Email = "wang@52abp.com" },
            };
        }


        public Student GetStudent(int id)
        {
            return _studentList.FirstOrDefault(a => a.Id == id);
        }
}

在我们的应用程序中,我们将针对 IStudentRepository 接口进行编程,而不是具体实现 MockEmployeeRepository。 这种接口抽象化是允许我们使用依赖注入,这反过来也使我们的应用程序灵活且易于单元测试。

0 人点赞