首页 > 代码库 > 不成功的MVC Repository模式,记录下来,后面看看原因在哪里(三) IDevTypeRepository 及 DevTypeRepository

不成功的MVC Repository模式,记录下来,后面看看原因在哪里(三) IDevTypeRepository 及 DevTypeRepository

 1  public class DevTypeRepository:Repository<DevDevtypeMdl>,IDevTypeRepository 2     { 3  4         //在执行子类构造函数之前,先执行基类Repository<DevDevtypeMdl>的构造函数 5         public DevTypeRepository(WBIDbContext m_dbContext) 6             : base(m_dbContext) 7         { } 8  9         public DevDevtypeMdl FindByCd(string argDevCd)10         {11             return m_currentRepository.Find(u => u.devid == argDevCd);12         }13 14         public DevDevtypeMdl FindByName(string argDevName)15         {16             return m_currentRepository.Find(u => u.devdesc == argDevName);17         }18 19         public List<DevDevtypeMdl> FindPageList(int pageIndex, int pageSize, out int totalRecordCnt, 20             int order, DevDevtypeMdl condition)21         {22             IQueryable<DevDevtypeMdl> queryTable = null;23             global::System.Linq.Expressions.Expression<Func<DevDevtypeMdl, bool>> whereLamba = null;24 25             if (string.IsNullOrWhiteSpace(condition.devid) && string.IsNullOrWhiteSpace(condition.devdesc))26             {27                 whereLamba = m => true;28             }29             else if (!string.IsNullOrWhiteSpace(condition.devid) && !string.IsNullOrWhiteSpace(condition.devdesc))30             {31                 whereLamba = m => m.devid == condition.devid && m.devdesc == condition.devdesc;32             }33             else if (string.IsNullOrWhiteSpace(condition.devid))34             {35                 whereLamba = m => m.devdesc == condition.devdesc;36             }37             else38             {39                 whereLamba = m => m.devid == condition.devid;40             }41 42             switch (order)43             {44                 case 0:45                     queryTable = m_currentRepository46                         .FindPageList(pageIndex, pageSize, out totalRecordCnt, whereLamba, true, u => u.devid);47                     break;48                 case 1:49                     queryTable = m_currentRepository50                         .FindPageList(pageIndex, pageSize, out totalRecordCnt, whereLamba, true, u => u.devdesc);51                     break;52                 //case 2:53                 //    queryTable = m_currentRepository54                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.GroupID);55                 //    break;56                 //case 3:57                 //    queryTable = m_currentRepository58                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.CreateTime);59                 //    break;60                 //case 4:61                 //    queryTable = m_currentRepository62                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.UpdateTime);63                 //    break;64                 default:65                     queryTable = m_currentRepository66                         .FindPageList(pageIndex, pageSize, out totalRecordCnt, whereLamba, true, u => u.devid);67                     break;68             }69 70 71             List<DevDevtypeMdl> lstUser = new List<DevDevtypeMdl>();72 73             if (queryTable != null)74             {75                 lstUser = queryTable.ToList();76             }77 78             return lstUser;79         }80 81     }

 

 1  public interface IDevTypeRepository:IRepository<DevDevtypeMdl> 2     { 3         DevDevtypeMdl FindByCd(string argUserCd); 4  5         DevDevtypeMdl FindByName(string argUserName); 6  7         //实体自己的特定逻辑--翻页 8         List<DevDevtypeMdl> FindPageList(int pageIndex, int pageSize, out int totalRecordCnt, int order, DevDevtypeMdl condition); 9 10     }

 

不成功的MVC Repository模式,记录下来,后面看看原因在哪里(三) IDevTypeRepository 及 DevTypeRepository