(写给像我一样刚离开校园进入公司的小菜鸟)在领域架构下,如何实现简单的展示页面以及增删改查(第一步)

第一次到公司,现在进行的项目已经开始了有一段时间了,底层架构早已搭建好,经过一段时间熟悉,现在为自己记录一下

大致结构如此图所示,我们需要完成的任务只需要涉及三个类库Domain,Model,Web

 

流程如下:

    1.Model:

       1.1 Entities文件=>>新建实体模型

    2.Domain:

       2.0 Domain类库下有个模型工厂文件件ModelCreateFactory在里面添加实体模型与数据模型转换的TSETZAaaaModelFactory.cs

代码如下

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 using MARS.Model.Entities;
  7 using MARS.Model.OracleModel;
  8 namespace MARS.Domain.ModelCreateFactory
  9 {
 10     public static class TSETZAaaaModelFactory
 11     {
 12         /// <summary>
 13         /// 将实体模型转换成数据模型
 14         /// </summary>
 15         /// <param name="m">数据模型</param>
 16         /// <returns></returns>
 17         public static TSETZAaaaInfo ToEntityInfo(TSETZAaaa m)
 18         {
 19             if (m == null)
 20             {
 21                 return null;
 22             }
 23             else
 24             {
 25                 return new TSETZAaaaInfo()
 26                 {
 27                     Id = m.ID,
 28                     DaId = m.DAID,
 29                     Zah = m.ZAH,
 30                     Xm = m.XM,
 31                     Gzd = m.GZD,
 32                     Csrq = m.CSRQ,
 33                     Xb = m.XB,
 34                     Mz = m.MZ,
 35                     Sfzh = m.SFZH,
 36                     Fjdz = m.FJDZ,
 37                     Xzz = m.XZZ,
 38                     Mqxm = m.MQXM,
 39                     Fqxm = m.FQXM,
 40                     Mqsfz = m.MQSFZ,
 41                     Mqsfzh = m.MQSFZH,
 42                     Mqmz = m.MQMZ,
 43                     Fqmz = m.FQMZ,
 44                     Jwh = m.JWH,
 45                     Zrr = m.ZRR,
 46                     Lxdh = m.LXDH,
 47                     Szxx = m.SZXX,
 48                     Jdr = m.JDR,
 49                     Djrq = m.DJRQ,
 50                     Djdw = m.DJDW,
 51                     Dazt = m.DAZT
 52 
 53                 };
 54             }
 55         }
 56         /// <summary>
 57         /// 多条数据的转换(将实体模型转换成数据模型)
 58         /// </summary>
 59         /// <param name="mList"></param>
 60         /// <returns></returns>
 61         public static List<TSETZAaaaInfo> ToEntityInfoList(List<TSETZAaaa> mList)
 62         {
 63             if (mList.Count<1)
 64             {
 65                 return null;
 66             }
 67             else
 68             {
 69                 var mm = from m in mList
 70                          select new TSETZAaaaInfo
 71                          {
 72                              Id = m.ID,
 73                              DaId = m.DAID,
 74                              Zah = m.ZAH,
 75                              Xm = m.XM,
 76                              Gzd = m.GZD,
 77                              Csrq = m.CSRQ,
 78                              Xb = m.XB,
 79                              Mz = m.MZ,
 80                              Sfzh = m.SFZH,
 81                              Fjdz = m.FJDZ,
 82                              Xzz = m.XZZ,
 83                              Mqxm = m.MQXM,
 84                              Fqxm = m.FQXM,
 85                              Mqsfz = m.MQSFZ,
 86                              Mqsfzh = m.MQSFZH,
 87                              Mqmz = m.MQMZ,
 88                              Fqmz = m.FQMZ,
 89                              Jwh = m.JWH,
 90                              Zrr = m.ZRR,
 91                              Lxdh = m.LXDH,
 92                              Szxx = m.SZXX,
 93                              Jdr = m.JDR,
 94                              Djrq = m.DJRQ,
 95                              Djdw = m.DJDW,
 96                              Dazt = m.DAZT
 97 
 98                          };
 99                 return mm.ToList();
100             }
101         
102         }
103         /// <summary>
104         /// 将数据模型转换成实体模型
105         /// </summary>
106         /// <param name="m"></param>
107         /// <returns></returns>
108         public static TSETZAaaa ToEntityModel(TSETZAaaaInfo m)
109         {
110             if (m==null)
111             {
112                 return null;
113             }
114             else
115             {
116                 return new TSETZAaaa()
117                 {
118                     ID = m.Id,
119                     DAID = m.DaId,
120                     ZAH = m.Zah,
121                     XM = m.Xm,
122                     GZD = m.Gzd,
123                     CSRQ = m.Csrq,
124                     XB = m.Xb,
125                     MZ = m.Mz,
126                     SFZH = m.Sfzh,
127                     FJDZ = m.Fjdz,
128                     XZZ = m.Xzz,
129                     MQXM = m.Mqxm,
130                     FQXM = m.Fqxm,
131                     MQSFZH = m.Mqsfzh,
132                     MQSFZ = m.Mqsfz,
133                     MQMZ = m.Mqmz,
134                     FQMZ = m.Fqmz,
135                     JWH = m.Jwh,
136                     ZRR = m.Zrr,
137                     LXDH = m.Lxdh,
138                     SZXX = m.Szxx,
139                     JDR = m.Jdr,
140                     DJRQ = m.Djrq,
141                     DJDW = m.Djdw,
142                     DAZT = m.Dazt
143 
144                 };
145             }
146         }
147         /// <summary>
148         /// 多条转换(将数据模型转换成实体模型)
149         /// </summary>
150         /// <param name="mList"></param>
151         /// <returns></returns>
152         public static List<TSETZAaaa> ToEntityInfoList(List<TSETZAaaaInfo> mList)
153         {
154             if (mList.Count<1)
155             {
156                 return null;
157             }
158             else
159             {
160                 var mm = from m in mList
161                          select new TSETZAaaa
162                          {
163                              ID = m.Id,
164                              DAID = m.DaId,
165                              ZAH = m.Zah,
166                              XM = m.Xm,
167                              GZD = m.Gzd,
168                              CSRQ = m.Csrq,
169                              XB = m.Xb,
170                              MZ = m.Mz,
171                              SFZH = m.Sfzh,
172                              FJDZ = m.Fjdz,
173                              XZZ = m.Xzz,
174                              MQXM = m.Mqxm,
175                              FQXM = m.Fqxm,
176                              MQSFZH = m.Mqsfzh,
177                              MQSFZ = m.Mqsfz,
178                              MQMZ = m.Mqmz,
179                              FQMZ = m.Fqmz,
180                              JWH = m.Jwh,
181                              ZRR = m.Zrr,
182                              LXDH = m.Lxdh,
183                              SZXX = m.Szxx,
184                              JDR = m.Jdr,
185                              DJRQ = m.Djrq,
186                              DJDW = m.Djdw,
187                              DAZT = m.Dazt
188 
189                          };
190                 return mm.ToList();
191             }
192         
193         }
194     
195     
196     
197     
198     }
199 }
View Code

 

       2.1 Interface文件=>>新建接口(IService文件夹 && IRepository文件夹)

       2.2 Interface文件/IRepository文件/IDbSession.cs=>>注册IRepository文件下所新建的IRepository接口

       2.3 Implement文件/Repository文件/ClassReposito文件新建(Repository数据访问类)

       2.4 Implement文件/RepositoryFactory.cs简单工厂实现低耦合,数据库访问层的统一入口

       2.5 Implement文件/Repository文件/DbSession.cs=>>实现接口,注册返回方法

       2.6 Implement文件夹/Service文件新建(Service业务逻辑类)

    3.Web:

       3.1 在Global.cs里面配置业务逻辑层的关系(具体实现的目的大概是我所描述的,但是菜鸟不知道详细的意思,求解答)  

       3.2 新建控制器=>> 在控制器添加依赖注入

    

这里开始展示代码  

    1.1 首先在Model类库Entities文件下根据OracleModel数据模型里面的“TSETZAaaa.cs”表创建一个“TSETZAaaaInfo.cs”

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Runtime.Serialization;
  6 /*-------------------------------------------------------
  7 // Copyright (C) 2014 
  8 //
  9 // 文件名:TSETZAaaaInfo.cs
 10 // 功能描述:dcy  领域层数据库实体
 11 //
 12 //
 13 // 创建标识:  -- 2014-01-13 10:55:30
 14 //
 15 // 添加标识:
 16 //
 17 // 添加标识:
 18 //
 19 //------------------------------------------------------*/
 20 
 21 namespace MARS.Model.Entities
 22 {
 23     public class TSETZAaaaInfo
 24     {
 25         /// <summary>
 26         /// ID
 27         /// </summary>
 28         [DataMember]
 29         public string Id
 30         {
 31             get;
 32             set;
 33         }
 34         [DataMember]
 35         public string DaId
 36         {
 37             get;
 38             set;
 39         }
 40         [DataMember]
 41         public string Zah
 42         {
 43             get;
 44             set;
 45         }
 46         [DataMember]
 47         public string Xm 
 48         { 
 49             get;
 50             set;
 51         }
 52         [DataMember]
 53         public string Gzd
 54         {
 55             get;
 56             set; 
 57         }
 58         [DataMember]
 59         public DateTime? Csrq 
 60         {
 61             get; 
 62             set;
 63         }
 64         [DataMember]
 65         public string Xb 
 66         { 
 67             get;
 68             set; 
 69         }
 70         [DataMember]
 71         public string Mz 
 72         { 
 73             get;
 74             set;
 75         }
 76         [DataMember]
 77         public string Sfzh
 78         {
 79             get; 
 80             set; 
 81         }
 82         [DataMember]
 83         public string Fjdz 
 84         { 
 85             get;
 86             set; 
 87         }
 88         [DataMember]
 89         public string Xzz
 90         { 
 91             get;
 92             set; 
 93         }
 94         [DataMember]
 95         public string Mqxm 
 96         {
 97             get; 
 98             set;
 99         }
100         [DataMember]
101         public string Fqxm 
102         { 
103             get; 
104             set; 
105         }
106         [DataMember]
107         public string Mqsfzh 
108         { 
109             get;
110             set; 
111         }
112         [DataMember]
113         public string Mqsfz 
114         {
115             get; 
116             set; 
117         }
118         [DataMember]
119         public string Mqmz 
120         { 
121             get; 
122             set;
123         }
124         [DataMember]
125         public string Fqmz
126         {
127             get; 
128             set; 
129         }
130         [DataMember]
131         public string Jwh 
132         { 
133             get;
134             set; 
135         }
136         [DataMember]
137         public string Zrr 
138         { 
139             get;
140             set;
141         }
142         [DataMember]
143         public string Lxdh 
144         { 
145             get; 
146             set;
147         }
148         [DataMember]
149         public string Szxx 
150         { 
151             get;
152             set; 
153         }
154         [DataMember]
155         public string Jdr 
156         { 
157             get;
158             set; 
159         }
160         [DataMember]
161         public DateTime? Djrq 
162         { 
163             get; 
164             set; 
165         }
166         [DataMember]
167         public string Djdw 
168         { 
169             get; 
170             set;
171         }
172         [DataMember]
173         public string Dazt 
174         { 
175             get;
176             set; 
177         }
178     }
179 }
View Code

    2.1 Interface文件下有两个文件夹分别放IRepository以及IService的接口

      先来IRepository文件下的接口命名为ITSETZAaaaRepository.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using MARS.Model.OracleModel;
 6 
 7 /*-------------------------------------------------------
 8 // Copyright (C) 2014//
 9 // 文件名:ITSETZAaaaRepository.cs
10 // 功能描述:  
11 //
12 //
13 // 创建标识: dcy -- 2015-01-13 11:22:11
14 //
15 // 添加标识:
16 //
17 // 添加标识:
18 //
19 //------------------------------------------------------*/
20 namespace MARS.Domain.Interface
21 {
22     public partial interface ITSETZAaaaRepository:IBaseRepository<TSETZAaaa>
23     {
24     }
25 }
View Code

      在接着写IService文件下的接口命名为ITSETZAaaaService.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 using MARS.Model.OracleModel;
 7 using System.Threading.Tasks;
 8 using MARS.Model.Entities;
 9 
10 /*-------------------------------------------------------
11 // Copyright (C) 2014 
12 //
13 // 文件名:ITSETZAaaaService.cs
14 // 功能描述: 
15 //
16 //
17 // 创建标识: -- 2015-01-13 10:49:50
18 //
19 // 添加标识:
20 //
21 // 添加标识:
22 //`
23 //------------------------------------------------------*/
24 namespace MARS.Domain.Interface
25 {
26     public interface ITSETZAaaaService:IBaseService<TSETZAaaa>
27     {
28         /// <summary>
29         /// 新增
30         /// </summary>
31         /// <param name="m"></param>
32         /// <returns></returns>
33         TSETZAaaaInfo Add(TSETZAaaaInfo a);
34         /// <summary>
35         /// 根据Id删除
36         /// </summary>
37         /// <param name="id"></param>
38         /// <returns></returns>
39         bool Delete(string id);
40         /// <summary>
41         /// 修改
42         /// </summary>
43         /// <param name="a"></param>
44         /// <returns></returns>
45         bool Updata(TSETZAaaaInfo a);
46         /// <summary>
47         /// 根据Id查询实体
48         /// </summary>
49         /// <param name="id"></param>
50         /// <returns></returns>
51         TSETZAaaaInfo GetById(string id);
52         /// <summary>
53         /// 获取所有数据
54         /// </summary>
55         /// <param name="pagesize"></param>
56         /// <param name="pageindex"></param>
57         /// <param name="total"></param>
58         /// <returns></returns>
59         List<TSETZAaaaInfo> LoadData();
60     }
61 }
View Code

    2.2 注册 Interface文件下的IRepository文件下的IDbSession.cs

加入这个接口方法

 1 ITSETZAaaaRepository TSETZAaaaRepository { get; } 

    2.3 Implement文件下先在Repository文件下的ClassReposito文件新建(Repository数据访问类)命名为TSETZAaaaRepository.cs

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 using MARS.Model.OracleModel;
 7 using MARS.Model.Entities;
 8 using MARS.Domain.Interface;
 9 namespace MARS.Domain.Implement
10 {
11    public partial class TSETZAaaaRepository:BaseRepository<TSETZAaaa>,ITSETZAaaaRepository
12     {
13     }
14 }
View Code

    2.4 Implement文件下的RepositoryFactory.cs添加一个方法

1 public static ITSETZAaaaRepository TSETZAaaaRepository
2         {
3             get
4             {
5                 return new TSETZAaaaRepository();
6             }
7 
8         }

    2.5 实现注册接口 Implement文件下的Repository文件下的DbSession.cs实现前面2.2IDbSession的接口方法

1 public ITSETZAaaaRepository TSETZAaaaRepository
2         {
3             get 
4             {
5                 return new TSETZAaaaRepository();                 
6             
7             }
8         }

    2.6 Implement文件夹下的Service文件新建(Service业务逻辑类)命名为TSETZAaaaService.cs

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 using MARS.Domain.Interface;
  7 using MARS.Model;
  8 using MARS.Model.Entities;
  9 using MARS.Model.OracleModel;
 10 using MARS.Model.Enum;
 11 using MARS.Domain.ModelCreateFactory;
 12 /*-------------------------------------------------------
 13 // Copyright (C) 2014 
 14 //
 15 // 文件名:TSETZAaaaServiec.cs
 16 // 功能描述: 
 17 //
 18 //
 19 // 创建标识:  -- 2015-01-13 11:35:11
 20 //
 21 // 添加标识:
 22 //
 23 // 添加标识:
 24 //
 25 //------------------------------------------------------*/
 26 namespace MARS.Domain.Implement
 27 {
 28     public class TSETZAaaaServiec:BaseService<TSETZAaaa>,ITSETZAaaaService
 29     {
 30         //----------------------------------------
 31         public override void SetCurrentRepository()
 32         {
 33             CurrentRepository = _dbSession.TSETZAaaaRepository;
 34         }
 35 
 36 
 37         //----------------------------------------
 38         /// <summary>
 39         /// 新增
 40         /// </summary>
 41         /// <param name="a"></param>
 42         /// <returns></returns>
 43         public TSETZAaaaInfo Add(TSETZAaaaInfo a)
 44         {
 45           var b =CurrentRepository.AddEntities(TSETZAaaaModelFactory.ToEntityModel(a));
 46           if (b != null && _dbSession.SaveChanges() > 0)
 47           {
 48               _dbSession.SaveChanges();
 49               return (TSETZAaaaModelFactory.ToEntityInfo(b));
 50           
 51           }
 52           return null;
 53             
 54         }
 55         /// <summary>
 56         /// 删除
 57         /// </summary>
 58         /// <param name="id"></param>
 59         /// <returns></returns>
 60         public bool Delete(string id)
 61         {
 62             TSETZAaaa m=new TSETZAaaa();
 63             m.ID=id;
 64             var d = _dbSession.TSETZAaaaRepository.Delete(c => c.ID == m.ID,m);
 65             if (d)
 66             {
 67                 _dbSession.SaveChanges();
 68                 return true;
 69             }
 70             else
 71             {
 72                 return false;
 73             }
 74         }
 75 
 76         /// <summary>
 77         /// 修改
 78         /// </summary>
 79         /// <param name="a"></param>
 80         /// <returns></returns>
 81         public bool Updata(TSETZAaaaInfo a)
 82         {
 83             var u = _dbSession.TSETZAaaaRepository.Update(c => c.ID == a.Id, TSETZAaaaModelFactory.ToEntityModel(a));
 84             if (u!=null)
 85             {
 86                 _dbSession.SaveChanges();
 87                 return true;
 88             }
 89             else
 90             {
 91                 return false;
 92             }
 93         }
 94         /// <summary>
 95         /// 根据id获取数据模型
 96         /// </summary>
 97         /// <param name="id"></param>
 98         /// <returns></returns>
 99         public TSETZAaaaInfo GetById(string id)
100         {
101             return TSETZAaaaModelFactory.ToEntityInfo(_dbSession.TSETZAaaaRepository.LoadEntities(c => c.ID == id).FirstOrDefault());
102         }
103 
104         /// <summary>
105         /// 加载所有数据
106         /// </summary>
107         /// <returns></returns>
108         public List<TSETZAaaaInfo> LoadData()
109         {
110             var data = TSETZAaaaModelFactory.ToEntityInfoList(_dbSession.TSETZAaaaRepository.GetAll().ToList());
111             if (data!=null)
112             {
113                 return data;
114             }
115             else
116             {
117                 return null;
118             }
119         }
120     }
121 }
View Code

    3.1 Global.cs建立容器

 1 #region 依赖注入
 2             var builder = new ContainerBuilder();
 3             SetupResolveRules(builder);
 4             builder.RegisterControllers(Assembly.GetExecutingAssembly());
 5             var container = builder.Build();
 6             DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
 7 #endregion
 8 
 9  private void SetupResolveRules(ContainerBuilder builder)
10         {
11 
12             builder.RegisterType<TSETZAaaaServiec>().As<ITSETZAaaaService>();
13 
14         }

    3.2 新建控制器添加依赖注入 代码如下:

1  #region 依赖注入
2         private readonly ITSETZAaaaService _ITSETZAaaaService;
3 
4         public TSETZAaaaController(ITSETZAaaaService ITSETZAaaaService)
5         {
6             _ITSETZAaaaService = ITSETZAaaaService;
7         }
8 
9 #endregion


好了  第一部分就这样结束,后面我还会上传配合EasyUi完成的页面展示以及增删改查 文章问题很多啊,希望大家发现能留言便于我及时更正 谢谢

 

posted @ 2015-01-15 11:57  Edwin_胡  阅读(396)  评论(0编辑  收藏  举报