.net实体新解

简介: 传统的开发模型中一般会有一个实体层(这里的实体和MVC开发框架中的实体不是一个概念),这个实体层中的类,是数据库表在应用程序的映射,甚至类名称会与表一一对应.虽然是类,但是组成却只有属性,没有方法.这类实体的作用是传递数据的载体,简洁明了,例如当一个方法参数个数超过3个,而这这三个参数又代表一个表的相应字段时,他们就可以用一个实体类代替.

传统的开发模型中一般会有一个实体层(这里的实体和MVC开发框架中的实体不是一个概念),
这个实体层中的类,是数据库表在应用程序的映射,甚至类名称会与表一一对应.虽然是类,但是组成却只有属性,没有方法.
这类实体的作用是传递数据的载体,简洁明了,例如当一个方法参数个数超过3个,而这这三个参数又代表一个表的
相应字段时,他们就可以用一个实体类代替.


以上算是实体类的一个优势,当然它的优势不仅如此.

我们想想在数据层返回查询数据时,有几种格式?
一般会返回单个字段,单个DataTable,甚至是DataSet

单个字段很明了,我们暂且不提.说说DataTable,既然是DataTable,就是行的集合,每一行就可以用实体类
来映射,所以在数据返回dataTable时,可以直接将其转化为实体集合。这样做的再外层调用时会比DataTable
更直观,直接知道操作的是哪个具体的对象。

这种方法一般应用的场景:
单表查询,获得连表查询时表之间有继承关系,没有继承关系的连表查询的结果没法用一个实体表示,所以无法映射为实体集合。

开发过程中有一个原则是封装变化

我们在数据层操作数据表时肯定用到sql语句。select * from TableName(出于性能和规范原因,我不会直接用*,而是用相应的字段),好的,说到这里,变化出现了,就是这个查询字段
select ColumName from TableName ,处于业务或者其它因素,通常我们的数据库字段会修改,这时我们就必须整个项目查找使用过该字段的方法,进行替换。
既然实体层是数据库与应用程序映射的纽带,何不把实体层做下扩充呢?
我们在实体类中加一个字段,其值就是数据表中的字段名称,在各个工程,各个方法中需要用到相应的字段都通过特定的实体类调用,
当数据库发生变化时,重新生成实体类,其它工程不需要变化,数据访问层的sql语句也显得整洁和清晰。

目录
相关文章
|
1月前
|
存储 开发框架 .NET
.NET 8 实现无实体库表 API 部署服务
【10月更文挑战第12天】在.NET 8中,可通过以下步骤实现无实体库表的API部署:首先安装.NET 8 SDK及开发工具,并选用轻量级Web API框架如ASP.NET Core;接着创建新项目并设计API,利用内存数据结构模拟数据存储;最后配置项目设置并进行测试与部署。此方法适用于小型项目或临时解决方案,但对于大规模应用仍需考虑持久化存储以确保数据可靠性与可扩展性。
|
关系型数据库 MySQL
使用ADO.NET 实体数据模型连接MySql
使用ADO.NET 实体数据模型连接MySql
217 0
|
SQL 数据库
C#_使用ADO.NET实体模型与数据库进行快速连接
C#_使用ADO.NET实体模型与数据库进行快速连接,实现增、删、改、查操作
449 0
|
弹性计算 数据格式
.NET CORE 中用AutoMapper将实体转Dto
在开发过程中,经常会碰到数据实体对象(Entity)和数据传输对象(Dto)的转换,手写代码太烦太LOW,可以用 AutoMapper 按规则自动转换。
804 0
|
.NET 数据库 开发框架
学习ASP.NET Core Razor 编程系列二——添加一个实体
原文:学习ASP.NET Core Razor 编程系列二——添加一个实体  学习ASP.NET Core Razor 编程系列目录  学习ASP.NET Core Razor 编程系列一   在Razor页面应用程序中添加一个实体        在本篇文章中,学习添加用于管理数据库中的书籍的实体类。
1053 0
|
C# 数据格式 XML
.NET[C#]中实现实体对象深拷贝(克隆/复制)的几种方法
.NET[C#]中实现实体对象深拷贝(克隆/复制)的几种方法,总有一种适合你。 方式一 使用二进制流 using System; using System.IO; using System.Runtime.
3772 0