ASP.NET Core MVC 中的 Model 模型_.net core模型都写在哪里-程序员宅基地

技术标签: ASP.NET Core  ASP.NET  

ASP.NET Core MVC 中的 Model

 

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

18 118 2

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

public class Student
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ClassName { get; set; }
    }

C#

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

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

 public interface IStudentRepository
    {
        Student GetStudent(int id);

    }

C#

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

 public class MockStudentRepository : IStudentRepository
    {
        private List<Student> _studentList;

        public MockStudentRepository()
        {
            _studentList = new List<Student>()
            {
            new Student() { Id = 1, Name = "张三", ClassName = "一年级", Email = "[email protected]" },
            new Student() { Id = 2, Name = "李四", ClassName = "二年级", Email = "[email protected]" },
            new Student() { Id = 3, Name = "王二麻子", ClassName = "二年级", Email = "[email protected]" },
            };
        }


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

C#

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

欢迎添加个人微信号:Like若所思。

欢迎关注我的公众号,不仅为你推荐最新的博文,还有更多惊喜和资源在等着你!一起学习共同进步!

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Cool2Feel/article/details/100526871

智能推荐

2017界面UI设计风格流行什么?(二)_ui界面设计风格线性化-程序员宅基地

文章浏览阅读373次。那么卡片化呢? 如果你的想法创意还停留在卡片阶段,那就落伍了,因为无框界面的发展过程中,卡片逐渐被淡化。卡片是否有存在的必要?用户更多的不会去关注,他们只注意来这里的最终功能所在,界面对他们来讲或许只是寻求信息的方式。没错,卡片化的由来有它一定的道理。几年前大家注意到显示屏的尺寸越来越不可预期,设计师也需要一种方式来让设计出的界面能够适应不同尺寸的屏幕。卡片刚好能够解决这一_ui界面设计风格线性化

CRC循环校验码的系统仿真及其应用_simulink modbus crc16 检验模块-程序员宅基地

文章浏览阅读2.7k次,点赞7次,收藏40次。CRC即循环冗余校验码,是数据通信领域中最常用的一种检错校验码,其特征是信息字段和校验字段的长度可以任意选定,循环冗余检查是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性循环冗余码CRC检验技术广泛应用于测控及通信领域。CRC计算可以靠专用的硬件来实现,但是对于低成本的微控制器系统,在没有硬件支持下实现CRC检验,关键的问题就是如何通过软件来完成CRC计算,也就是CRC算法的问题。_simulink modbus crc16 检验模块

Food Buying(CF-1296B)_t 组数据,每组给出 1 个数 n,代表有 n 元钱,现在用这 n 元钱买东西,每买 10 元返-程序员宅基地

文章浏览阅读789次。Problem DescriptionMishka wants to buy some food in the nearby shop. Initially, he has s burles on his card.Mishka can perform the following operation any number of times (possibly, zero): choose..._t 组数据,每组给出 1 个数 n,代表有 n 元钱,现在用这 n 元钱买东西,每买 10 元返

JSP内置对象、表达式和标签及JSP解析原理-程序员宅基地

文章浏览阅读1k次。JSP的学习路线 什么是JSP?——JSP的背景和发展情况简介 为什么要用JSP?——普通HTML编程中,我们遇到的了哪些问题? JSP的语法特点简介 JSP内置对象 EL表达式 JSP的标签式语法(指令和动作) JSTL标签库 JSP的解析编译执行过程* 什么是JSP?1.Java Server Pages(JSP) is a technology thathelps software develop...

ESP32开发-LVGL动画显示_lv_snprintf-程序员宅基地

文章浏览阅读4.4k次。LVGL动画LVGL 支持动态效果,包括动态切换屏幕,组件动画效果等等。动画创建步骤以及API说明以官方demo中的动画创建为例 //定义动画变量 lv_anim_t a; //初始化动画变量 lv_anim_init(&a); //设置要进行动画处理的组件 lv_anim_set_var(&a, gauge); //设置动画功能 lv_anim_set_exec_cb(&a, (lv_anim_exec_xcb_t_lv_snprintf

树莓派搭建mosquitto-程序员宅基地

文章浏览阅读1k次。来源于官网:https://mosquitto.org/blog/2013/01/mosquitto-debian-repository/On a previous post I described how to make mosquitto debian packages. This turned out to be a bit problematic, so I've now put up...

随便推点

Android实现三级联动下拉框 下拉列表spinner_android省市县下拉框-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏7次。Android实现(省、市、县)三级联动下拉框 下拉列表spinner主要实现办法:动态加载各级下拉值的适配器在监听本级下拉框,当本级下拉框的选中值改变时,随之修改下级的适配器的绑定值_android省市县下拉框

amd为什么还用针脚_彻底翻盘!AMD 锐龙9 3900X与锐龙7 3700X评测-程序员宅基地

文章浏览阅读291次。前言AMD于一个月多前的台北电脑展上发布了新的Zen2架构锐龙3000系列处理器,代号“Matisse”。虽然之前大家已经收到许多消息,包括7nm工艺的进步,Zen2架构的chiplet多Die设计,IPC的提升等,但是对新处理器性能的表现还是有很大的期待。现在新的锐龙处理器3900X、3700X和X570主板已经来到PCEVA评测室,我们就一起来看看它的效能表现。Zen2架构的设计在实..._3900 pbo2

获得客户机IP,主机名,端口和用户,java获取客户机信息-程序员宅基地

文章浏览阅读1.6k次。request.getHeader("User-Agent"); //就是取得客户端的系统版本 request.getRemoteAddr(); //取得客户端的IP request.getRemoteHost() //取得客户端的主机名 request.getRemotePort(); //取得客户端的端口 request.getRemo..._如何获取发送请求的客户机的ip

QT+opencv安装笔记-程序员宅基地

文章浏览阅读175次。安装时出现的问题:我使用的build_opencv是别人编译好的,我不知道有可能会存在兼容性的问题(安装时报错,完成后缺失install文件)https://blog.csdn.net/qq_33308135/article/details/85049795复制的build_opencv文件位置:https://pan.baidu.com/s/1KsB553FYyLjmQ-j2OztxQQ...

NX二次开发基础_nx mcd二次开发-程序员宅基地

文章浏览阅读2.2k次。Nx的二次开发项目常用的创建方式有3种,1.NX开发向导(vc6中开发需要将UgOpen_18.awx和UgOpen_v18.hip文件复制到vs\common\msdev98\bin\ide目录)、2.WIN32应用程序向导、3.MFC应用程序向导。注册项目路径有2种方法:配置文件法和修改环境变量法1配置文件法:在配置文件custom_dirs.dat(位于%UGII_BASE_D..._nx mcd二次开发

Strusts2简单入门教程-程序员宅基地

文章浏览阅读1.4k次。1.项目结构 我使用的工具是Interiij idea,但是项目结构和Eclipse相似,可以参考创建项目。 这里只是添加了几个主要的jar包,实现简单的功能已经足够了。 2.web.xml配置