奕玖科技 > 新闻中心 > 技术文章

asp.net core自学第七天:学习数据模型

来源: 奕玖科技 fly | 2022/8/5 19:37:12

上一篇mvc的示例里,我们貌似没有看到数据模型的使用。那是因为数据模型的知识点较多,所以小编需要单独用一篇文章来介绍。首先我们要先理解什么是数据模型,拿现实中的工厂来比喻的话,假设我们要生成完成兔子,那么我们就要先设计一个兔子的模型,然后我们就可以通过兔子的模型来生成玩具了。c#里的数据模型就是通过定义数据的属性,通过这些自定义的属性来描述各种同类型的数据。先看一段示例

using System.ComponentModel.DataAnnotations;
namespace WebApplication4.Models //命名空间
{
    public class Article
    {
        [Key] //特性 id为主键
        public int Id { get; set; }
        [MaxLength(100, ErrorMessage = "文章字数超出")] //特性:规定最大字符不得超过100
        [Required(ErrorMessage = "文章标题不能为空")] //特性:规定不能为空
        public string Title { get; set; }
        [MinLength(20, ErrorMessage = "内容不能少于20个字符")]
        [Required(ErrorMessage = "内容不可为空")]
        public string Content { get; set; }
    }
}

上面这个模型取名为Article.cs。上方括号[]里的是叫特性 比如第一个[Key]它规定ID为该模型的主键。任何作用于数据库的模型都需要一个主键,默认为id。所以上面的[key]其实可以直接删除掉。 public int Id { get; set; } 整段代码我们这里讲解一下,

public 代表公共的,就是大家都可以访问。可以通过Article.id 就可以访问到具体的数据。但是如果我们要是定义为private 那么就代表私有的,只能在Article内部才能访问到。

int id 表示这个是一个int数据 名称为id

{ get; set; }这个是一组语法糖,作用就是字面意思,取得数据,给与数据。它是一组自动完成的代码。你也可以手动定义。代码如下

private string _icon;

 public dynamic Icon
{
  get
   {
      return _icon;
   }
  set
   {
    _icon = value;
   }
 }

上方的icon属性,如果我们要手写get set 那么首先需要一个私有字段private string _icon Icon用来设置和获取_icon字段的数据。{ get; set; }这个语法糖实际也有一个私有字段,只是C#把我们自动设置好了,如果通过反编译我们是可以找到这个私有字段的。

第一个数据模型的啥用

如果我们还保留了上个文章里的项目案例,那么我们开始使用数据模型,首先打开Controllers-HomeController.cs 引入数据模型。因为Article.cs位于命名空间Models下。所以我们只需要引入命名空间using WebApplication4.Models,就可以引入了。

整个HomeController的代码如下

using Microsoft.AspNetCore.Mvc;//引入mvc
using WebApplication4.Models;

namespace WebApplication4.Controllers
{
    public class HomeController : Controller //把HomeController的信息注入到 mvc.Controller,
    {
        public HomeController() //构造函数
        {
        }
        [Route("")] //设置路由 这里设置为网站的根目录
        public IActionResult Index() //返回IActionResult数据
        {

            Article article = new () //定义变量article 数据类型为模型Article
            {
                Id=3,
                Title="我是第一个数据模型",
                Content="我是这个模型的内容"
            };
            return View(article); //把变量article放入参数里,那么就可以在index.cshtml调用了
        }
    }
}

上方通过数据模型Article定义了第一个变量 article,然后把它传递给了视图 index.cshtml。index.cshtml代码如下

@model WebApplication4.Models.Article;@Model.Title@Model.Content

@model WebApplication4.Models.Article; 定义了model为Article数据类型,然后就可以通过Model.Title访问传递过来的参数article里的title属性了。通过浏览器运行项目后实际效果如下图

最后总结

数据模型在MVC里很大一部分都是应用于ef code,用来获取数据库里的数据。所以咱们可以理解为数据库在c#里的映射。ef code通过数据模型可以达到创建,更新,管理数据库等诸多功能,让我们把精力最大化的放到c#源码里,而不需要单独的于数据库打交道。


栏目导航
相关文章
文章标签
关于我们
公司简介
企业文化
资质荣誉
服务项目
高端网站定制
微信小程序开发
SEO排名推广
新闻动态
行业新闻
技术学院
常见问题
联系我们
联系我们
人才招聘
联系方式
Q Q:24722
微信:24722
电话:13207941926
地址:江西省抚州市赣东大道融旺国际3栋
Copyright©2008-2022 抚州市奕玖科技有限公司 备案号:赣ICP备2022010182号-1