前面一篇文章<Git.Framework 框架随手记--ORM新增操作>主要讲解了如何使用Git.Framework往数据库中添加数据。其操作过程相对简单,本章主要记录如何编辑数据和修改数据。
一. 编辑数据
在Git.Framework中主要提供了如下编辑方法
int Update(List<T> list); int Update(T entity); int Update(List<T> list, bool isOpenTrans); int Update(T entity, bool isOpenTrans);
以上方法可以分为两组,区别在于两个输入参数的方法是可以启用事务操作的,在前面的文章中已经提到过。默认是不启用事务操作的。
public int Update(AdminEntity entity) { entity.Include(a => new { a.Phone, a.Email, a.Mobile, a.RealName, a.RoleNum, a.DepartNum, a.UserName, a.PassWord, a.UpdateTime }); entity.Where(a => a.UserCode == entity.UserCode); int line = this.Admin.Update(entity); return line; }
结合昨天使用的实体映射类,数据访问接口,以及数据操作类,我们队Admin表进行数据修改操作。
entity.Include(a => new { a.Phone, a.Email, a.Mobile, a.RealName, a.RoleNum, a.DepartNum, a.UserName, a.PassWord, a.UpdateTime });
这段代码应该很熟悉,上一篇文章已经介绍到了这个用法,用于包含操作哪些字段,其中至少包含一个字段。但是这里要注意的是,如果Include中包含一个主键或者自动标识列是不会去真正包含的,其默认会将其他过滤掉,在实际的数据库操作过程中我们也不会去修改主键值。
要想执行语句就要调用Update() 方法,该方法会向数据库发送命令操作。上一篇已经了解到数据库操作实际上最终是生成SQL语句执行的。上面一段代码生成的SQL语句如下:
UPDATE [dbo].[Admin] SET [Phone]=@Phone,[Email]=@Email,[Mobile]=@Mobile,[RealName]=@RealName,[RoleNum]=@RoleNum,[DepartNum]=@DepartNum,[UserName]=@UserName,[PassWord]=@PassWord,[UpdateTime]=@UpdateTime WHERE Admin.[UserCode]=@0_Admin_UserCode
如果看到这种代码相信大家都比较熟悉了,一个带条件的SQL语句,其中都是使用占位符参数。在前面几篇也讲到了,这个框架的最底层其实还是ADO.NET,只是在表面封装了一层看不到而已,而且在ADO.NET底层封装还提供了相应的访问类,后面详述。
二. 编辑多行数据
在重载Update()方法的时候,我们看到有个参数List<T>,这个方法可以用于同时修改多行数据。
List<UA_USERS> list = new List<UA_USERS>(); UA_USERS user = new UA_USERS(); user.PASSWORD = "777777777"; user.Include(a => new { a.PASSWORD }); user.USER_ID = "AA0"; user.Where(a => a.USER_ID == user.USER_ID); list.Add(user); user = new UA_USERS(); user.PASSWORD = "55555555555"; user.USERNAME = "艾弗森"; user.Include(a => new { a.PASSWORD,a.USERNAME }); user.USER_ID = "AA1"; user.Where(a => a.USER_ID == user.USER_ID); list.Add(user); int line = provider.Update(list,true);