欢迎来到天天文库
浏览记录
ID:34722800
大小:188.18 KB
页数:6页
时间:2019-03-10
《ef利用存储过程读取大数据》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、看到本文的标题,相信你会忍不住进来看看!没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询,加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询然后利用take,skip读取第N页数据的时候,你的程序就挂了,因为,你很可能读取需要几十秒甚至几分钟以上。下面来讲解一下,ASP.NETMVC+EF利用存储过程读取大数据的详细过程。1.首先,我们创建一个实体类PageinationInfo,主要用于分页,如下1publicclassPageinationInfo2{3///4///要显示的表或多个表的连接5
2、///6publicstringstrTable{get;set;}78///9///要查询的字段10///11publicstringstrField{get;set;}1213///14///每页多少条记录15///16publicintpageSize{get;set;}1718///19///当前页20///21publicintpageIndex{get;set;}2223///24///查询条件,不需wher
3、e25///26publicstringstrWhere{get;set;}2728///29///用于排序的主键30///31publicstringstrSortKey{get;set;}3233///34///用于排序,如:iddesc(多个iddesc,dtasc)35///36publicstringstrSortField{get;set;}3738///39///排序,0-顺序,1-倒序40///41publicboolst
4、rOrderBy{get;set;}4243///44///总记录数45///46publicintRecordCount{get;set;}4748///49///总页数50///51publicintPageCount{get;set;}5253///54///查询耗时,毫秒为单位55///56publicintUsedTime{get;set;}5758}2.然后我们再DAL层新建一个类PageinationInfoService主要用于实现分页读取数
5、据,如下:1publicclassPageinationInfoService2{3///4///获取分页列表5///6///7///8publicIListGetPageinationInfoList(PageinationInfopageinationInfo)whereEntity:class9{10dynamicresult=null;11using(SnsLearningLogMa
6、nagerDBdb=newSnsLearningLogManagerDB())12{13#regionSqlParameter参数14SqlParameter[]paras=newSqlParameter[10];15paras[0]=newSqlParameter("strTable",DbType.String);16paras[0].Value=pageinationInfo.strTable;1718paras[1]=newSqlParameter("strField",DbType.String);19paras[1].Value=pageinationInf
7、o.strField;2021paras[2]=newSqlParameter("pageSize",DbType.Int16);22paras[2].Value=pageinationInfo.pageSize;2324paras[3]=newSqlParameter("pageIndex",DbType.Int16);25paras[3].Value=pageinationInfo.pageIndex;2627paras[4]=newSqlParameter("strWhere",DbType.String);28paras[4].V
此文档下载收益归作者所有