【干货】利用MVC5+EF6搭建博客系统(一)EF Code frist、实现泛型数据仓储以及业务逻辑
2017-11-22 17:02
981 查看
习MVC有一段时间了,决定自己写一套Demo了,写完源码再共享。
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可。
一、框架搭建
View Code
到目前为止数据库、仓储层、业务逻辑层的父类和父接口都实现了,下一篇博文就在UI层怎么调用
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可。
一、框架搭建
using _52MVCBlog.IRepository.Base; using _52MVCBlog.IService.Base; using _52MVCBlog.Repository.Base; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace _52MVCBlog.Service.Base { public class BaseServices<TEntity> : IBaseServices<TEntity> where TEntity : class { private IBaseRepository<TEntity> baseDal = new BaseRepository<TEntity>(); #region 查询 /// <summary> /// 单表查询 /// </summary> /// <param name="predicate"></param> /// <returns></returns> public List<TEntity> QueryWhere(Expression<Func<TEntity, bool>> predicate) { return baseDal.QueryWhere(predicate); } /// <summary> /// 多表关联查询 /// </summary> /// <param name="predicate"></param> /// <param name="tableNames"></param> /// <returns></returns> public List<TEntity> QueryJoin(Expression<Func<TEntity, bool>> predicate, string[] tableNames) { return baseDal.QueryJoin(predicate, tableNames); } /// <summary> /// 升序查询还是降序查询 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="predicate"></param> /// <param name="keySelector"></param> /// <param name="IsQueryOrderBy"></param> /// <returns></returns> public List<TEntity> QueryOrderBy<TKey>(Expression<Func<TEntity, bool>> predicate, Expression<Func<TEntity, TKey>> keySelector, bool IsQueryOrderBy) { return baseDal.QueryOrderBy(predicate, keySelector, IsQueryOrderBy); } /// <summary> /// 升序分页查询还是降序分页 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="pageIndex">第几页</param> /// <param name="pagesize">一页多少条</param> /// <param name="rowcount">返回共多少条</param> /// <param name="predicate">查询条件</param> /// <param name="keySelector">排序字段</param> /// <param name="IsQueryOrderBy">true为升序 false为降序</param> /// <returns></returns> public List<TEntity> QueryByPage<TKey>(int pageIndex, int pagesize, out int rowcount, Expression<Func<TEntity, bool>> predicate, Expression<Func<TEntity, TKey>> keySelector, bool IsQueryOrderBy) { return baseDal.QueryByPage(pageIndex, pagesize, out rowcount, predicate, keySelector, IsQueryOrderBy); } #endregion #region 编辑 /// <summary> /// 通过传入的model加需要修改的字段来更改数据 /// </summary> /// <param name="model"></param> /// <param name="propertys"></param> public void Edit(TEntity model, string[] propertys) { baseDal.Edit(model, propertys); } /// <summary> /// 直接查询之后再修改 /// </summary> /// <param name="model"></param> public void Edit(TEntity model) { baseDal.Edit(model); } #endregion #region 删除 public void Delete(TEntity model, bool isadded) { baseDal.Delete(model, isadded); } #endregion #region 新增 public void Add(TEntity model) { baseDal.Add(model); } #endregion #region 统一提交 public int SaverChanges() { return baseDal.SaverChanges(); } #endregion #region 调用存储过程返回一个指定的TResult public List<TResult> RunProc<TResult>(string sql, params object[] pamrs) { return baseDal.RunProc<TResult>(sql, pamrs); } #endregion } }
View Code
到目前为止数据库、仓储层、业务逻辑层的父类和父接口都实现了,下一篇博文就在UI层怎么调用
相关文章推荐
- 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑
- 从零开始,搭建博客系统MVC5+EF6搭建框架(1),EF Code frist、实现泛型数据仓储以及业务逻辑
- 【干货】利用MVC5+EF6搭建博客系统(四)(上)前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
- 【干货】利用MVC5+EF6搭建博客系统(三)添加Nlog日志、缓存机制(MemoryCache、RedisCache)、创建控制器父类BaseController
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- 从零开始,搭建博客系统MVC5+EF6搭建框架(4)上,前后台页面布局页面实现,介绍使用的UI框架以及JS组件
- EF CodeFirst模式下,模型和业务逻辑处在不同项目的自动数据迁移实现
- 使用.net core ABP和Angular模板构建博客管理系统(实现自己的业务逻辑)
- linq to ef 通过泛型 操作数据库,分离数据操作与业务逻辑
- MVC3学习第七章 排山倒海第三变----利用MVC3实现数据验证以及完成用户数据的编辑
- 【数据恢复】利用构造ROWID实现无备份情况下绕过ORA-1578、ORA-8103、ORA-1410等逻辑/物理坏块问题
- 家庭财务管理系统实战2-easyui界面主框架搭建以及Accordion手风琴菜单实现
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- 利用内存chunk充当数据buffer的泛型的双向队列的简单实现
- MVC3学习第八章 葵花点穴手之指如疾风----MVC3下实现数据的批量删除和利用EF初始化我们的数据
- 【数据恢复】利用构造ROWID实现无备份情况下绕过ORA-1578、ORA-8103、ORA-1410等逻辑/物理坏块问题
- 在家看孩子,10分钟生成一个业务管理系统【能支持多数据库,大数据,流程审批,权限控制,即时提醒】,视频讲解详细实现步骤
- Extjs4.2+webAPI+EF实现分页以及webapi的数据传值
- 利用AOP实现业务日志系统