程序的最终核心是 --数据 不论前端的 数据显示 还是 后端的数据分析处理
数据库层面的内容先不谈,主要说一下.net开发 或者说是用VS2019 开发 写c#代码的层面
大致理解为 1:定义数据说明 2:定义数据操作 3:处理数据调用
一:定义数据说明
就是要说明 哪台服务器 哪个数据库 哪些表 哪些字段 哪些主外键关联
盖楼首先是要打地基
怎么说明呢?
配置文件的连接字符串 都知道是连接数据库。 表和字段还有主外键属性 都是建立对应的类也就是Model。
最开始的程序说明 是通过ADO.NET五大对象来进行的,Connection去调用连接字符串与数据库连接
Command通过T-sql语句直接数据处理,返回用建立的对应model类去交互。
之后是用EF 也就是微软的ORM框架 为什么进化EF?
因为EF 的好处之一可以使我们不用手动去建立对面数据库表的Model类了,或者是建立model类之后不用手动建立数据表了
总而言之就是在数据库与c#model类中 省去了一方的手动创建时间。 这也就是EF的 DBfirst 和 Codefirst
试想一下100个表,手动建类要多久。
model与表 为我们省事了。
那怎么用EF 说明连接呢?EF里面封装好了一个
很牛很重要的东西 DbContext 类,可以理解为就是为了数据说明而诞生的。它的构造函数里面可以直接将连接字符串声明。也就是代替了Connection的作用. 在构造是将连接字符串使用。
现在表对应的类能映射,连接也能在构造函数中说明,那么表之间的关系主外键怎么说明?
最常用的俩种表现手法: DBfirst 数据库为主 和 CodeFirst C#代码为主
如果是DBfirst的话,关系是在数据库里面设置,那Codefirst 怎么说明呢?
在声明model的类中 可以重写一下 OnModelCreating(DbModelBuilder modelBuilder) 这个方法
去对表里面的字段说明 比如长度啊 必填啊 这些
这里简单了解概念 回头详细介绍 EF的 DBfirst 和 EF Codefirst
二:定义数据操作
ADO五大对象是 sql 语句 操作数据。
EF封装了一些方法,使用了 linq to entity 操作
那之前用sql习惯了的人 怎么去用这个EF linq写法,为了这个,linq 的标准写法 是跟sql 差不多的写法容易理解,而linq的lambda表达式是更为简便的写法
不同的ORM框架的话 应该会有相关的文档来说明CURD 增删改查的相关实列
三:处理数据
就是业务逻辑编写 就是 三层中所描述得 DAL层 在微服务里就是服务层 一个意思
三:数据调用(管道-消息传递中间件)
其实 就是 三层中得 bll层得意思 不论是 MVC控制器调用bll在调用dal 或是 前后端分离 或是微服务 之间 调用 其实 就是 在建立通信 连接过程
一层一层得传消息给到最后DAL 处理完在 返回一层层到 控制器 然后给到 页面AJAX得回调