不成功的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             else
38             {
39                 whereLamba = m => m.devid == condition.devid;
40             }
41 
42             switch (order)
43             {
44                 case 0:
45                     queryTable = m_currentRepository
46                         .FindPageList(pageIndex, pageSize, out totalRecordCnt, whereLamba, true, u => u.devid);
47                     break;
48                 case 1:
49                     queryTable = m_currentRepository
50                         .FindPageList(pageIndex, pageSize, out totalRecordCnt, whereLamba, true, u => u.devdesc);
51                     break;
52                 //case 2:
53                 //    queryTable = m_currentRepository
54                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.GroupID);
55                 //    break;
56                 //case 3:
57                 //    queryTable = m_currentRepository
58                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.CreateTime);
59                 //    break;
60                 //case 4:
61                 //    queryTable = m_currentRepository
62                 //        .FindPageList(pageIndex, pageSize, out totalRecordCnt, u => true, true, u => u.UpdateTime);
63                 //    break;
64                 default:
65                     queryTable = m_currentRepository
66                         .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     }

 

posted @ 2014-10-22 17:16  smallbird2012  阅读(349)  评论(0编辑  收藏  举报