Entity Framework底层操作封装V2版本(7)

下面就是使用了:首先我们举例没有缓存的类的使用:同时也把多条件组合 lambda 的使用弄上来给大家看看

[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using JFrame.AccessCommon;  
  6. using JFrame.Entity;  
  7. using JFrame.Utility;  
  8. using System.Linq.Expressions;  
  9.   
  10. namespace JFrame.Dal  
  11. {  
  12.     public class SysOperateLogDal : DalBaseData<SysOperateLog>  
  13.     {  
  14.         /// <summary>  
  15.         ///   
  16.         /// </summary>  
  17.         /// <param name="PageInfo"></param>  
  18.         /// <param name="ErrorType"></param>  
  19.         /// <param name="ErrorContent"></param>  
  20.         /// <param name="StarTime"></param>  
  21.         /// <param name="EndTime"></param>  
  22.         /// <returns></returns>  
  23.         public List<SysOperateLog> GetSysOperateLog(PagingInfo PageInfo, string ErrorType, string ErrorContent, DateTime? StarTime, DateTime? EndTime)  
  24.         {  
  25.             Expression<Func<SysOperateLog, bool>> expression = PredicateExtensions.True<SysOperateLog>();  
  26.             expression = expression.And(o => 1 == 1);  
  27.             if (!string.IsNullOrEmpty(ErrorType))   
  28.             {  
  29.                 expression = expression.And(o => o.OType == ErrorType);  
  30.             }  
  31.             if (!string.IsNullOrEmpty(ErrorContent))  
  32.             {  
  33.                 expression = expression.And(o => o.OContent.Contains(ErrorContent));  
  34.             }  
  35.             if (StarTime!=null)  
  36.             {  
  37.                 expression = expression.And(o => o.ODate > StarTime);  
  38.             }  
  39.             if (EndTime != null)  
  40.             {  
  41.                 expression = expression.And(o => o.ODate < EndTime);  
  42.             }  
  43.             return GetAllEntityByPage(expression, PageInfo, p => p.LogId);  
  44.         }  
  45.     }  
  46. }  

下面是需要进行数据缓存的类的实例:角色是需要经常用到的,每个用户登录以后,都需要不断的去去读这部分数据,判断用户所有使用功能的权限。

[csharp] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Text;  
  5. using JFrame.Entity;  
  6.   
  7. namespace JFrame.Dal  
  8. {  
  9.     public class SysRolesDal : DalBaseDataCache<SysRoles>  
  10.     {  
  11.         public List<SysRoles> GetUserRoles(int UserId)   
  12.         {  
  13.             int?[] SysRoleMenu = (from myTabe in new DalBaseDataCache<SysUserAndRoles>().GetListByWhere(p => p.UBaseId == UserId)  
  14.                                   select myTabe.RoleId).ToArray();  
  15.             return GetListByWhere(p => SysRoleMenu.Contains(p.RoleId));  
  16.         }  
  17.     }  
  18. }  

http://blog.csdn.net/jacky4955/article/details/25414579

posted @ 2014-12-30 15:01  关中秦人  阅读(121)  评论(0编辑  收藏  举报