关于MVC+dapperExtensions 记录SQL日志的问题

MVC入门实例源码(音乐商店)dapper框架
C#语言基础
开发语言:C#
实例大小:36.90M
下载次数:
浏览次数:
发布时间:
实例类别:C#语言基础
发 布 人:
所需积分:2
&相关标签:
同类人气实例
实例下载地址
MVC入门实例源码(音乐商店)dapper框架
不能下载?内容有错? 点击这里报错
好例子网口号:伸出你的我的手 & 分享!
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
Copyright &
好例子网(www.haolizi.net).All Rights Reserved备案编号:冀ICP备号 石公备号(10).net_mvc_dapper+mysql轻量级快速开发框架
用微信扫描二维码分享至好友和朋友圈
用微信扫描二维码分享至好友和朋友圈
  本文以及提供的资源旨在帮助新手朋友们在项目开发上有更多的选择,可以相互探讨,拒绝谩骂攻击。  先来说一下Dapper,它的优势非常明显,就是一个轻量级的ORM类,编译完就40K左右。  Dapper的速度接近IDataReader,比DataTable取列表的速度快。支持的数据库非常多,你所常见的mssql、mysql、sqllite、oracle等等等。.net这边Dapper支持2.0/3.0/3.5/4.0/4.5。当然现在估计3.5以下的人非常少了,除了一些企业项目,迁移成本高的。Dapper现在已经开始支持.netcore,不过劣者还没有进行过操作,这里不便讲解。  Dapper的原理就是通过Emit来反射IDataReader的序列队列,从而快速得到和产生对象,可想而知,其速度之所快。最最最关键的是,它不需要配置啊。引用一下就可以了,想用就用,不想用就不用。  再来说一下T4模板。T4,即4个T开头的英文字母组合:Text Template Transformation Toolkit。T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎。简单的说就是可以根据模板生成你想要的文件,可以使类文件,文本文件,HTML等等。  VS本身只提供一套基于T4引擎的代码生成的执行环境,由下面程序集构成:  Microsoft.VisualStudio.TextTemplating.10.0.dll  Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll  Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll  Microsoft.VisualStudio.TextTemplating.VSHost.10.0.dll  T4模板编辑器插件:  vs默认编辑器无高亮,无提示。T4编辑器有多款,这只是其中一个。  T4的编辑工具下载地址http://t4-editor.tangible-engineering.com/Download_T4Editor_Plus_ModelingTools.html  现在开始构建mysql+dapper+t4模板的快速开发框架。    项目的结构还是采用传统的三层结构,多了一个common用来存放一些公共类例如log、json解析之类的。  我们来看看怎样用T4来生成实体。    除了连接字符串之外,跟mssql没有什么区别,另外Entity需要引用mysql.data.dll,不然无法访问数据库。  再来看看dal层的生成。    可以看到,dal的生成需要依赖bin文件夹下面的Entity包,BLL的生成也是同理,按照顺序生成就好了。类的方法可以自行定义。T4模板的好处就是你可以随时重新生成最新的类,只需要在模板里保存一下它,就会执行生成指令。  想要与数据库交互,我们还差一个东西。    Dapper的基本语法大家可以再网上搜一下。  那么做后台管理系统比较多的朋友,经常会遇到一个需求,就是批量操作。Dapper  对批量操作的支持非常到位,我们只需要结合数据库的语法,来构建适合的批量方法。以批量插入举例。    可以看到,我们要做的就是构建正确的语法,其余的都交给Dapper实现就好了。  那么分页查询怎么实现呢。  劣者的思路是先创建一个分页的存储过程。    这里是存储过程的入参和出参。    然后执行存储过程得到出参,也就是得到总页数,总条数和所有行。至于参数如何封装结果如何封装,就各人随意了。  劣者把demo上传到了网盘,有需要的朋友可以自行下载。里面有完整的前端框架可以使用(H+)。  Demo :http://pan.baidu.com/s/1i5oX4RN  存储过程:http://pan.baidu.com/s/1c1V4URY  欢迎留言探讨
特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
阅读下一篇
网易通行证/邮箱用户可以直接登录:有时候大数据量进行查询操作的时候,查询速度很大强度上可以影响用户体验,因此自己简单写了一个demo,简单总结记录一下:
技术:Mvc4+Dapper+Dapper扩展+Sqlserver
目前主要实现了两种分页:一种采用&PagedList.Mvc 实现的分页
两外一种采用 ajax异步加载分页 采用比较常用的jquery.pagination 分页插件。
功能相对比较简单仅供学习交流。
通用存储过程
1 USE [MvcProcPageDB]
4 /****** Object:
StoredProcedure [dbo].[ProcViewPager]
Script Date:
16:41:16 ******/
5 SET ANSI_NULLS ON
8 SET QUOTED_IDENTIFIER ON
11 CREATE PROCEDURE [dbo].[ProcViewPager] (
@recordTotal INT OUTPUT,
--输出记录总数
@viewName VARCHAR(800),
@fieldName VARCHAR(800) = '*',
--查询字段
@keyName VARCHAR(200) = 'Id',
--索引字段
@pageSize INT = 20,
--每页记录数
@pageNo INT =1,
@orderString VARCHAR(200),
--排序条件
@whereString VARCHAR(800) = '1=1'
--WHERE条件
DECLARE @beginRow INT
DECLARE @endRow INT
DECLARE @tempLimit VARCHAR(200)
DECLARE @tempCount NVARCHAR(1000)
DECLARE @tempMain VARCHAR(1000)
--declare @timediff datetime
set nocount on
--select @timediff=getdate() --记录时间
SET @beginRow = (@pageNo - 1) * @pageSize
SET @endRow = @pageNo * @pageSize
SET @tempLimit = 'rows BETWEEN ' + CAST(@beginRow AS VARCHAR) +' AND '+CAST(@endRow AS VARCHAR)
--输出参数为总记录数
SET @tempCount = 'SELECT @recordTotal = COUNT(*) FROM (SELECT '+@keyName+' FROM '+@viewName+' WHERE '+@whereString+') AS my_temp'
EXECUTE sp_executesql @tempCount,N'@recordTotal INT OUTPUT',@recordTotal OUTPUT
--主查询返回结果集
SET @tempMain = 'SELECT * FROM (SELECT ROW_NUMBER() OVER (order by '+@orderString+') AS rows ,'+@fieldName+' FROM '+@viewName+' WHERE '+@whereString+') AS main_temp WHERE '+@tempLimit
--PRINT @tempMain
EXECUTE (@tempMain)
--select datediff(ms,@timediff,getdate()) as 耗时
set nocount off
/// &summary&
/// 查询所有用户
/// &/summary&
/// &returns&&/returns&
public List&UserInfo& GetAllList()
var list = new List&UserInfo&();
//string sql = @"select Id,UserName,Nation,TrueName,Birthday,LocalAddressGender from UserInfo";
using (SqlConnection conn = new SqlConnection(constr))
conn.Open();
//标准写法
//list = conn.Query&UserInfo&(sql,commandType: CommandType.Text).AsList();
//dapper扩展写法
list = conn.GetList&UserInfo&().AsList();
conn.Close();
Dapper分页
1 /// &summary&
/// 采用存储过程分页
/// &/summary&
/// &param name="page"&&/param&
/// &param name="pageSize"&&/param&
/// &returns&&/returns&
public UserPage GetPageByProcList(int page=1,int pageSize=10)
UserPage model = new UserPage();
var list = new List&UserInfo&();
//string sql = @"select Id,UserName,Nation,TrueName,Birthday,LocalAddressGender from UserInfo";
using (SqlConnection conn = new SqlConnection(constr))
conn.Open();
DynamicParameters parm = new DynamicParameters();
parm.Add("viewName", "UserInfo");
parm.Add("fieldName", "*");
parm.Add("keyName", "Id");
parm.Add("pageSize", pageSize);
parm.Add("pageNo", page);
parm.Add("orderString", "Id");
parm.Add("recordTotal", 0, DbType.Int32, ParameterDirection.Output);
//参数名得和存储过程的变量名相同(参数可以跳跃传,键值对方式即可)
//list = conn.Query&UserInfo&("P_GridViewPager", new { viewName = "Edu_StudentSelectedCourse", fieldName = "*", keyName = "Id", pageSize = 20, pageNo = 1, orderString = "id" }, commandType: CommandType.StoredProcedure).ToList();
//标准写法
//list = conn.Query&UserInfo&(sql,commandType: CommandType.Text).AsList();
//dapper扩展写法
//list = conn.GetList&UserInfo&().AsList();
list = conn.Query&UserInfo&("ProcViewPager", parm, commandType: CommandType.StoredProcedure).AsList();
int totalCount = parm.Get&int&("@recordTotal");//返回总页数
model.user =
model.TotalCount = totalC
conn.Close();
public ActionResult Index(int page=1)
#region 插入10条数据
//for (int i = 1; i &= 100000; i++)
new UserInfo
Id = Guid.NewGuid().ToString(),
UserName = "xiaoming" + i,
Birthday = Convert.ToDateTime(""),
Gender = 1,
LocalAddress = "河南省",
TrueName = "小明" + i,
Nation = "汉族"
//ss.InsertAll(list);
#endregion
var pagelist = service.GetAllList().ToPagedList(page,10);
return View(pagelist);
public ActionResult ProcPageIndex(int page=1)
var list = service.GetPageByProcList(page,5);
return View();
public JsonResult GetProList(int page=1,int pagesize=10)
var model = service.GetPageByProcList(page, pagesize);
return Json(model, JsonRequestBehavior.AllowGet);
4 &link href="~/Content/bootstrap.css" rel="stylesheet" /&
5 &link href="~/Content/PagedList.css" rel="stylesheet" /&
6 &link href="~/Scripts/pagination.css" rel="stylesheet" /&
7 &div class="well"&
&table class="table"&
&th&用户名&/th&
&th&真实姓名&/th&
&th&出生日期&/th&
&th&地址&/th&
&tbody id="tbodylist"&&/tbody&
22 &div id="Pagination" class="pagination"&
25 &script src="~/Scripts/jquery-1.9.1.min.js"&&/script&
26 &script src="~/Scripts/jquery.pagination.js"&&/script&
27 &script src="~/Scripts/bootstrap.js"&&/script&
28 &script type="text/javascript"&
//分页查询开始
$(document).ready(function () {
getDataList(0, null);
var pagesize = 50;
var page = 1;
var initFlag =
function getDataList(currPage, jg) {
url: "/Home/GetProList",
type: "get",
dataType: 'json',
data: { pagesize: pagesize, page: currPage + 1 },
contentType: "application/x-www-form- charset=utf-8",
success: function (response) {
if (response.user != null && response.user != "" && response.TotalCount != undefined && response.TotalCount & 0) {
if (initFlag) {
$("#Pagination").pagination(
response.TotalCount,
items_per_page: pagesize,
num_edge_entries: 1,
num_display_entries: 8,
callback: getDataList//回调函数
initFlag =
$("#tbodylist").html("");
loadDataList(response.user);
function loadDataList(listdata) {71
var tbody = "";
$(listdata).each(function (i, n) {
tbody += "&tr&" +
"&td&" + n.UserName + "&/td&" +
"&td&" + n.TrueName + "&/td&" +
"&td&" + n.Birthday + "&/td&" +
"&td&" + n.LocalAddress + "&/td&" +
$("#tbodylist").html(html);
//分页查询结束
85 &/script&
微信号:hgmyzhl
微信公众号:
阅读(...) 评论()
随笔 - 16694
评论 - 1617成功案例_门户网站-mvc5 ef6 dapper cms网站管理系统源码_蓝狐软件工作室
Posted By : 蓝狐
&本cms网站管理系统是采用最新技术:vs2013+ASP.NET 5+sql 2008+Entity Framework 6+。本源码包括电脑版和手机版,都是采用ASP.NET MVC5开发的。后台是采用Bootstrap框架开发的,支持评论和会员系统,并且集成了QQ账号登录。
主要有以下功能:
一、前台功能
2、全部文章列表
3、优质模版
4、成功案例
5、会员中心
会员注册及登录(也可以使用qq账号登录),可以发表自己的文章和向站长提问。
评论支持多级回复。
二、手机版
使用手机访问,
三、管理后台功能
1、文章管理
2、文章分类管理
3、商品分类管理
可以很方便的管理商品的分类。
3、商品管理
4、内链管理
在后台配置好关键词对应的链接Url,系统自动生成页面的一些内链(锚链接)使用网站更利于。
5、广告位管理
6、作家管理
支持多个用户发表文章,每一个普通用户都只能管理自己写的文章,管理员能管理所有作家的文章。
7、码表管理
把一些常用的系统配置定义为码表,在后台可以方便的管理这些信息。
8、预览文章
预览文章可以查看禁用的不还未正式启用的文章
9、置顶文章
置顶可以把某些文章置顶,让它始终在首页或列表页面的最前面。
10、会员管理
11、评论管理
解决方案项目结构如下图:
本系统方便二次开发,购买本ASP.NET MVC5网站管理系统,联系人qq:,联系请备注
相关下载:
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自: >>
本文标题:门户网站-mvc5 ef6 dapper cms网站管理系统源码
本文地址:http://www.lanhusoft.com/Article/299.html
本科学历,蓝狐软件工作室创始人。2009年开始从事软件开发行业,从事软件开发互朕网7年以上,3年以上项目管理和架构设计经验,具有丰富的电子商务行业的移动和Web应用的架构设计和开发经验。参与过高并发、高可用、分布式系统设计,熟悉SOA架构设计,有敏捷开发经验。熟悉.NET和Java EE相关技术和框架,熟悉Linux、Windows、Nginx、Mysql等服务器的部署和优化。熟悉主流的开发语言,擅长SQL Server、mysql、Oracle等主流数据库,通过了Oracle OCP 11g认证,有丰富的数据库性能优化和设计经验。独立开发了多个人作品:蓝狐seo管理系统、seo关键词按天计费系统、蓝狐软件工作室门户等。曾在多家移动互联网担当核心技术研发和管理工作,同时承担关键技术难点攻关和设计高性能的技术架构。把握平台的技术发展方向,对技术发展及时提出指导性意见。在提高平台的稳定性、性能、质量等方面做出了重要贡献。目前专职于为企业提供优质的信息化建设服务,其中不限于系统、软件定制开发和高端网站建设。
就是本站的源码吧。
发表成功!}

我要回帖

更多关于 dapper分页实现 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信