2020-08-09

本文深入讲解了数据库操作中的增删查改(CRUD)方法,包括如何使用Add()和AddRange()进行数据添加,Remove()和RemoveRange()进行数据删除,以及如何利用LINQ进行数据查询和修改。同时,文章还提供了在执行这些操作时需要注意的事项,如数据验证、事务管理和权限检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.新增

  1. 新增是通过用户页面填写的数据,通过控制器将数据传输到数据库
  2. 新增数据需要通过用户在页面填写的数据进行验证,然后进行判断,并保存到数据库
  3. 将数据保存到数据库的方法可以用Add()或者AddRange()将数据保存到数据库。添加成功后通过SaveChanges()保存新增数据
  4. Add(entity):添加数据

entity:要添加的实体

AddRange(entity):添加数据列表

Entity:要添加的实体集合

这两个方法都是当调用SaveChanges()时,会将它 插入到数据库中,同时最好判断一下,因为在新增的时候有可能

                                  

  1. 注意事项:
    • 当有的数据具有唯一性时,要判断新增数据中有没有和数据库中的数据重复
    • 当新增数据涉及多张表时,需要开启事务,如果开启了事务,那么在新增数据判断新增成功时要提交事务
  1. 删除
  1. 删除数据最重要的是或取数据ID要明确的知道删除的是哪条数据,然后依靠该ID查询出要删除的数据。
  2. 删除数据要注意的:
    • :检查删除的数据是否是超级管理员
    • :如果删除用户数据需要检查是否删除的是是否是当前用户(自己)
    • :检查后面的业务表中是否有与之有关的数据,如果存在,不允许删除
  3. 删除可以用Remove()或者RemoveRange()进行删除
  4. Remove():将给定实体标记为“已删除”RemoveRange():删除数据集合

这两个方法都是将需要删除的数据放入括号中,当调用SavaChanges()时,会从数据库删除指定数据

  1. 删除数据完成后要提交事务

       

  1. 查询:

(1)from:指定范围变量和数据源

(2)Where:根据bool表达式从数据源中筛选数据

(3)Contains():模糊查询。括号内:要查询的数据

(4)Select:指定查询结果中的元素所具有的类型

(5)group:对查询结果按照键值进行分组

(6)into:提供一个标识符(可用于左连接存放零时表)

(7)orderby:对查询出的元素进行排序

①:ascending:正序(排序默认是这个)

②:descending:降序排序

(8)join:按照两个指定匹配条件来equals连接两个数据源(表格之间的连接,找到相同的数据ID连接起来)

(9)Linq中where查询:它是linq表达式的元素筛选机制

,也就是条件筛选器。除开始和结束的位置,几乎可以出现在linq表达式中的任何位置,也可以没有,可以有一个或者多个,多个where子据之间用的是(&&:同时满足)或者(||满足任何一个)

  1. 修改

修改和新增差不多,唯一有区别的是修改需要知道修改什么数据,具体的数据是什么,而新增不需要知道具体的数据是哪一条,只需要判断新增的这一条或者多条数据是否存在重复,同样的,修改数据也要先获取页面传递过来的数据,然后进行判断,实现修改数据。

修改数据注意事项:

    • :不能修改超级管理员(最高权限)
    • :如果修改的数据含有(是否具有唯一性)的数据,那么需要判断修改的数据是否重复,再判断时需要去除自身

修改完成后通过Entry()来添加数据,接着通过SavaChanges()保存修改的数据

                            

增删查改经常需要用到的方法或属性:

  1. Equals():判断调用这个方法的值和括号内的                    值是否全等,

参数二: 可以有,也可以没有

作用是忽略大小写

StringComparison.CurrentCultureIgnoreCase

  1. Count():返回序列中的元素数量
  2. Single():返回序列的唯一元素,不能为空
  3. SingleOrDefault():返回序列的唯一元素,可                          以为空
  4. ToList():返回数据列表
  5. 一般处理逻辑性问题,最好加个try防止报错
  6. 检查字符串是否为null或”“

String.IsNullEmpty(),为空返回true

控制器中的正则验证Regex.IsMatch()

参数一:需要验证的字符串

参数二:正则表达式

(8)Split(”“):根据指定字符分隔成数组

(9)Convert.ToDateTime():将指定字符转换为时间格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值