企业官网怎么和别的网站做链接,注册安全工程师条件,企业网站页脚信息,dw制作网页模板AA.Dapper如何使用AA.Dapper基于dapper进一步封装而成的orm框架#xff0c;提供增删改查、分页、事务、原生sql的功能#xff0c;以满足日常的业务开发。1#xff0e;Repository层#xff1a;DapperRepository类包含大部分数据库操作如图#xff1a; DapperContext.Curren… AA.Dapper如何使用AA.Dapper基于dapper进一步封装而成的orm框架提供增删改查、分页、事务、原生sql的功能以满足日常的业务开发。1Repository层DapperRepository类包含大部分数据库操作如图 DapperContext.Current.DataBase类支持原生sqlExecute执行非查询命令对象的sql并返回受影响的行数、ExecuteScalar返回select结果集中的第一行第一列、Query执行查询sql并返回结果 定义仓储类并且继承DapperRepository如以下代码 public class UserRoleRepository:DapperRepositoryUserRole, IUserRoleRepository { }
如果有需要原生sql的需求在IUserRepository接口中添加定义int GetUserCount();
在UserRepository中实现 public class UserRepository : DapperRepositoryUser, IUserRepository { public int GetUserCount() { return DapperContext.Current.DataBase.ExecuteScalarint(select count(*) from Sys_UserInfo); } } 2ApplicationServce层1新增_userRepository.Insert(entityUser); 2修改var entity _userRepository.Get(input.SysNo); entity.Status 320; _userRepository.Update(entity); 3删除 var entity _userRepository.Get(input.SysNo); _userRepository.Delete(entity); 4查询//通过主键获取单个实体 _userRepository.Get(input.SysNo); //通过Expression条件获取 _userRepository.Select(x x.SysNo input.SysNo); //分页 var result _userRepository.From(sql { sql.Select() .Where(xx.UserNameinput.UserName) .Page(input.PageIndex, input.PageSize); }); 5事务using (var dbTransaction dapperContext.BeginTransaction()) { try { var user new UserInfo() { UserName chengTian, RealName 成天, GmtCreate DateTime.Now, GmtModified DateTime.Now, LastLoginDate DateTime.Now }; userInfoRepository.Insert(user); userAlbumRepository.Insert(new UserAlbum { Pic image/one.jgp }); dapperContext.Commit(); } catch (Exception ex) { dbTransaction.Rollback(); } } 6动态Expression删除、查询条件需要根据传入的参数判断使用DynamicWhereExpression动态构造Expression 如一下代码var where DynamicWhereExpression.InitUser(); if (input.RealName ! ) { where where.And(x x.RealName.Contains(input.RealName)); } if (input.SysNo!Guid.Empty) { where where.And(xx.SysNoinput.SysNo); } if (input.SysNos.Any()) { where where.And(xinput.SysNos.Contains(x.SysNo)); } var result _userRepository.From(sql { sql.Select() .Where(where) .Page(input.PageIndex, input.PageSize); }); https://github.com/ChengLab/AAFrameWork源码地址用起来还是很顺手的目前比较成熟也很多不过AA.Dapper不是全新的轮子只是进一步的封装有了Ef的便捷性。你可以hold住的orm代码可以任意扩展只要你熟悉dapper。喜欢.NetCore的童鞋们可以加微信群加微信备注加群qinzhong45。