FreeSql学习笔记——2.插入
前言
由于还没有表结构,就先从新增开始,插入一些数据后才好做查询、修改、删除操作。
初始化
前面注入FreeSql时设置过自动同步表结构,那么就不用管数据库了,只需要在项目中定义实体,就会自动生成表结构,这里创建一个学生类Student
/// <summary>
/// 学生
/// </summary>
[Table(Name = "Student")]
public class Student
{
/// <summary>
/// 自增主键
/// </summary>
[Column(IsIdentity = true, IsPrimary = true)]
public long Id { get; set; } /// <summary>
/// 姓名
/// </summary>
[Column(IsNullable = false, DbType = "varchar(20)")]
public string Name { get; set; } /// <summary>
/// 年龄
/// </summary>
public int Age { get; set; } public StatusEnum Status { get; set; } /// <summary>
/// 添加时间
/// </summary>
public DateTime AddTime { get; set; } /// <summary>
/// 说明
/// </summary>
[Column(IsNullable =true,DbType = "varchar(100)")]
public string Remark { get; set; }
} /// <summary>
/// 状态枚举 1.正常 2.冻结
/// </summary>
public enum StatusEnum
{
Normal = 1, Freeze = 2
}
[HttpGet("AddStudent")]
public async Task<ActionResult> AddStudent()
{
var student = new Student
{
Name = "小明",
Age = 8,
Status = StatusEnum.Normal,
AddTime = DateTime.Now
};
var res = await _freeSql.Insert<Student>().AppendData(student).ExecuteInsertedAsync();
return Ok();
}

批量插入
var studentList = new List<Student>(); for (int i = 0; i < 10; i++)
{
studentList.Add(new Student
{
Name = "小明" + i,
Age = i,
Status = StatusEnum.Normal,
AddTime = DateTime.Now
});
} //await _freeSql.Insert(studentList).ExecuteSqlBulkCopyAsync();
var res = await _freeSql.Insert(studentList).ExecuteAffrowsAsync(); return Ok();
插入指定列、忽略列
_freeSql.Insert(student1).ExecuteAffrowsAsync();//正常插入 _freeSql.Insert(student2)
.InsertColumns(x => new { x.Name, x.Age, x.Status, x.AddTime })
.ExecuteAffrowsAsync();//指定列
//等价于
_freeSql.Insert(student2)
.IgnoreColumns(x => x.Remark)
.ExecuteAffrowsAsync();//忽略列
字典插入
var dic = new Dictionary<string, object>();
dic.Add("Name", "Dic");
dic.Add("Age", 1);
dic.Add("Status", StatusEnum.Normal);
dic.Add("AddTime", DateTime.Now); _freeSql.InsertDict(dic).AsTable(nameof(Student)).ExecuteAffrowsAsync();
FreeSql学习笔记——2.插入的更多相关文章
- MongoDB学习笔记~批量插入方法的实现
回到目录 批量插入在EF时代大叔就自己封装过,原理是将多次SQL连接和多次向SQL发送的指令减少到1次,或者1000条数据1次,而对于EF产生的语句来说,这无疑是性能高效的,因为EF这边在处理时,每个 ...
- CUBRID学习笔记 22 插入数据
CREATE TABLE auto_tbl(id INT AUTO_INCREMENT, name VARCHAR); 自增长的列可以插入null, 同时一次可以插入多条记录.别的和其他的sql数据库 ...
- MySQL学习笔记04 插入中文时出现ERROR 1366 (HY000)
1 环境: MySQL Server 6.0 命令行工具 2 问题 : 插入中文字符数据出现如下错误: ERROR 1366 (HY000): Incorrect string value: '\ ...
- MongoDB学习笔记系列
回到占占推荐博客索引 该来的总会来的,Ef,Redis,MVC甚至Sqlserver都有了自己的系列,MongoDB没有理由不去整理一下,这个系列都是平时在项目开发时总结出来的,希望可以为各位一些帮助 ...
- MongoDB学习笔记系列~目录
MongoDB学习笔记~环境搭建 (2015-03-30 10:34) MongoDB学习笔记~MongoDBRepository仓储的实现 (2015-04-08 12:00) MongoDB学习笔 ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- MyBatis 学习笔记(七)批量插入ExecutorType.BATCH效率对比
MyBatis 学习笔记(七)批量插入ExecutorType.BATCH效率对比一.在mybatis中ExecutorType的使用1.Mybatis内置的ExecutorType有3种,默认的是s ...
- JUC源码学习笔记8——ConcurrentHashMap源码分析1 如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移
源码基于jdk1.8 这一片主要讲述ConcurrentHashMap如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移 系列文章目录和关于我 一丶ConcurrentHashMap概 ...
- SQLServer学习笔记系列1
一.前言 一直自己没有学习做笔记的习惯,所以为了加强自己对知识的深入理解,决定将学习笔记写下来,希望向各位大牛们学习交流! 不当之处请斧正!在此感谢!这边就先从学习Sqlserver写起,自己本身对数 ...
- swift学习笔记1——基础部分
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
随机推荐
- python之异步任务框架Celery
官网参考: Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest ...
- 服务器安全之DenyHosts
情景:今天登录服务器,突然发现登录之后展示的信息有点多,仔细端倪发现: There were 3975 failed login attempts since the last successful ...
- 使用certbot申请免费SSL证书
现在网站使用https已经成为标配,但是SSL证书最便宜的DV证书也要几百块钱一年,对于个人开发者来说很不划算.好在,我们有Let's Encrypt,它是能提供免费的SSL证书,应该也是市面上使用最 ...
- mysql 自定义函数写法
1.业务场景 有时候我们希望通过sql语句解决一些复杂的问题,比如根据一个ID 查询组织的路径.这个时候我们可以使用函数来实现. 2.函数编写 CREATE FUNCTION getGroupById ...
- Linux查看进程所在目录
通过ps 或 top 查看进程信息时,只能查到进程的相对路径,查不到进程的详细信息,如绝对路径等,我们可以通过下面的方法进行查询 1. 通过ll /proc/PID 命令查看进程所在的目录位置 lin ...
- 使用七牛云上传文件报错incorrect region, please use up-z1.qiniup.com-迷恋自留地
最近用Git提交代码时,一直报如标题所示的错误.百度了很多都无法解决,包括改更改配置,SSh等.最后在一个论坛上,说可能之前输入的账号或密码有误.尝试后,完美解决. 解决方法: 找到如下图的位置: 可 ...
- 中电金信:基于AI的智能化国内信用证结算系统
2023年<商业银行资本管理办法>正式稿中,明确规定了国内信用证的信用转换系数:与贸易直接相关的短期或有项目,其信用转换系数为20%:而基于服务贸易的国内信用证,其系数为50%. 这一 ...
- Hive数据库【操作】+ 【分区】+【分桶】+【查询】+【运算】+【函数】
目录 键值对信息 数据库表操作 内部表操作 外部表操作 分区表的操作 分桶表操作 数据查询 关系运算 数学运算 逻辑运算 数值计算 日期函数 键值对信息 添加数据库的描述信息(添加键值对信息) cre ...
- Qt音视频开发02-海康sdk解码(支持句柄/回调/gpu模式/支持win/linux)
一.前言 为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设备还有很 ...
- _findnext()调试中断,发生访问错误,错误定位到ntdll.dll
问题: 采用_findfirst和_findnext获取指定的文件夹下的文件时,_findnext()函数在调试时发生中断,发生访问错误,错误定位到ntdll.dll.错误提示如下所示: _findn ...