本篇主要记录具体如何新增数据,废话不多说,开始进入正文。
一. 生成工程结构
上一篇已经说到了如何生成工程结构,这里在累述一次。
1. 新建项目总体结构
使用VS新建项目结构,分层结构可以随意。我们使用的结构如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnaucjYiNWM3QTMzY2YjF2M1MmZwU2YykzMxQGZ5MmYlZGMfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.jpg)
2. 引入配置文件相关
Configs文件夹中的配置文件,其目录结构如下图:
以上几个文件为必须的,除了最下面的画红线的为自定义可以修改,具体配置项内容可以参考前面几篇文章。然后再web.config定义如下配置:
3. 生成相应的代码
实体类AdminEntity
数据访问接口
数据访问实现
二. 使用IncludeAll() 方法新增
可能大家觉得IncludeAll()方法很奇怪,这里我们先看一个SQL语句
SQL语句中有个INSERT INTO TABLE (ColName1,ColName2,ColName3,...) 插入语句包含了插入的字段。在前面的映射过程中我们讲到了每个字段都有一个标识属性用于对一个数据库中的哪个字段,IncludeAll() 方法就是用于包含类中的所有标识对应的数据库字段。
添加代码
上面的代码中有一句就是恩提桶有.IncludeAll() 该方法就是用于包含这个类中所有的属性字段。
上面的方法调用可以生成如上的SQL代码,这些字段都是数据库表中对应的字段,使用下面的截图程序测试效果如下:
最终通过调用Add方法,将数据插入到了数据库,我们通过SQL管理器查询可以看到插入的数据。
三. Include 方法添加
在系统中提供了如下几个Include方法的重载和扩展
以上三个方法都是扩展方法,第一个主要是用于对Lambda表达式的支持
使用Lambda表达式可以更加方便的操作类的属性,可以使用.操作。 如果将new{} 这个里面指定所有的字段就和IncludeAll()方法一样。
下面的两个方法第一个用于直接包含字段名称,最后一个则是包含字段名称并且指定别人,这个和在查询的时候有作用,查找字段指定别名。
修改代码
下面看看生成的SQL语句如下:
并没有包含所有的字段信息,通过对比应该可以明白Include方法的作用了。 但是这里注意include 方法至少要包含一个字段,否则程序异常。如果建有数据库约束的字段也要包含,比如不允许为NULL的,如果不包含默认做NULL处理,插入语句报错。
四. 插入集合
这里的插入集合要注意只能少量的插入,如果一次性几万是存在问题的。还是直接看代码
批量INSERT
方法this.InStorDetail.Add(list); 参数是一个List<T> 集合,调用该方法可以讲多条数据插入到数据库,但是在插入之前集合中的项都必须调用Include()或者IncludeAll() 用于包含插入哪些字段。
五. 新增方法汇总
在系统框架中提供了以上四种新增的方法,下面两个方法都多了一个参数就是在插入的时候是否启用事务操作,true表示启用,默认不启用