现在的位置: 主页 > 新闻中心 > 文章列表

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证

作者:福建省医学会血液病学分会 来源:www.fjhematology.org 发布时间:2017-09-06 09:07:42
 

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(11)-验证码实现和底层修改

(1)在前面我写ASP.NET MVC+EF框架+EasyUI实现权限管理系列(4)-业务逻辑曾的封装 这篇博客的时候,有一位博友(@Qlin)提出了我在项目底层些查询的时候为什么不用Expression<Func<T,bool>>,因为当时我实现的代码是Func<T,bool> wherelambda来定义的,当时的代码如下:


1 //实现对数据库的查询 --简单查询
2 IQueryable<T> LoadEntities(Func<T, bool> whereLambda);
3
4 /// <summary>
5 /// 实现对数据的分页查询
6 /// </summary>
7
8 /// <typeparam name="S">按照某个类进行排序</typeparam>
9
10 /// <param name="pageIndex">当前第几页</param>
11
12 /// <param name="pageSize">一页显示多少条数据</param>
13
14 /// <param name="total">总条数</param>
15
16 /// <param name="whereLambda">取得排序的条件</param>
17
18 /// <param name="isAsc">如何排序,站群软件,根据倒叙还是升序</param>
19
20 /// <param name="orderByLambda">根据那个字段进行排序</param>
21
22 /// <returns></returns>
23
24 IQueryable<T> LoadPageEntities<S>(int pageIndex, int pageSize, out int total, Func<T, bool> whereLambda, bool isAsc, Func<T, S> orderByLambda);  (2)那么根据那位博友提出来的意见,我查看资料,发现他们还真的有很大的区别,这里我就简单的说一下他们的区别,并且非常感谢博友们能提出这样的问题,希望广大博友们能真心的提出来项目中的问题,我将虚心接受。

  (3)那么他们有什么区别呢?网上的资料是这样说的,Func<T,bool>本身就是一个委托(delegate),而Expression<Func<T,bool>>确实一个表达式,只有在编译之后才会变成委托,那么在EF中到底使用哪一个呢?又是为什么呢?其实如果我们写成Func<T,bool>类型的便来那个如果作为参数传递给where方法进行Linq查询时,Entity FrameWork将会产生全表查询,将整个数据库表忠的数据加载到内存中,然后再内存中根据where中的条件进一步查询,而Expression<Func<t,bool>>只是查询出来你where条件中的数据,不用去进行全表查询,采集软件,所以我们修改后的代码是:


1 //实现对数据库的查询 --简单查询
2
3 IQueryable<T> LoadEntities(Expression<Func<T, bool>> whereLambda);
4
5 /// <summary>
6
7 /// 实现对数据的分页查询
8
9 /// </summary>
10
11 /// <typeparam name="S">按照某个类进行排序</typeparam>
12
13 /// <param name="pageIndex">当前第几页</param>
14
15 /// <param name="pageSize">一页显示多少条数据</param>
16
17 /// <param name="total">总条数</param>
18
19 /// <param name="whereLambda">取得排序的条件</param>
20
21 /// <param name="isAsc">如何排序,根据倒叙还是升序</param>
22
23 /// <param name="orderByLambda">根据那个字段进行排序</param>
24
25 /// <returns></returns>
26
27 IQueryable<T> LoadPageEntities<S>(int pageIndex, int pageSize, out int total, Expression<Func<T, bool>> whereLambda,
28
29 bool isAsc, Expression<Func<T, S>> orderByLambda);  (4)上面我们简单的介绍了一下Func<T, bool>和Expression<Func<T, bool>>的使用区别,我查到了就这些资料,如果那位博友还能够详细的说明的话,真心希望你在下面留言,我将非常的感谢你们。
  (5)综上所述的话,这时候我们就要对我们项目中数据库访问层,数据库访问接口层,业务逻辑层和业务逻辑接口层的查询方法都进行修改,这里就不多说了,和上面的基本差不多。

2.登录页面的设计

  (1)首先我们到网上下载一个登录页面的Demo,然后经过修改之后放到我们MVC4的项目里面。

  (2)然后我们在项目中添加一个LoginController控制器,然后再在Index上面添加一个空视图,最后我们将我们前面下载的Demo中的代码部署到Index.cshtml页面之上,最后生成的静态页面如图所示:

  

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:天门SEO http://tianmen.4567w.com

  • 上一篇:[PHP]如何使用Mobile_Detect来判断访问网站的设备:安
  • 下一篇:最后一页
  •