成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

菜鳥級三層框架項目實戰:對數據訪問層的抽象上

開發 架構 項目管理
全系列會詳細介紹抽象工廠三層的搭建,以及EF高級應用和 ASP.NET MVC3.0簡單應用,應用到的技術有Ef、Lambda、Linq、Interface、T4等。

系列二概述:該系列詳細介紹了如何抽象出公用方法(CRUD),以及T4模版的應用。

 

一、創建Cnblogs.Rdst.IDAO程序集

系列概述:全系列會詳細介紹抽象工廠三層的搭建,以及EF高級應用和 ASP.NET MVC3.0簡單應用,應用到的技術有Ef、Lambda、Linq、Interface、T4等。

由于網上對涉及到的技術概念介紹很多,因此本項目中不再對基本概念加以敘述。 

1.1 先在解決方案中創建一個Interface 文件夾,用于存放抽象出的接口

1

1.2 在Interface文件夾中添加名為Cnblogs.Rdst.IDAO的程序集

1.2.1

1.3 添加引用系列一中創建的Domain程序集和System.Data.Entity程序集

1.3           

二、抽象數據訪問層的基接口

2.1 在剛創建的Cnblogs.Rdst.IDAO程序集中創建IBaseDao接口

2

2.2 在IBaseDao中定義常用的CRUD方法

  1. using System;  
  2.  using System.Collections.Generic;  
  3.  using System.Linq;  
  4.  using System.Text;  
  5.    
  6.  namespace Cnblogs.Rdst.IDAO  
  7.  {  
  8.     public interface IBaseDao<T>  
  9.                   where T:class,  
  10.                   new ()//約束T類型必須可以實例化  
  11.     {  
  12.         //根據條件獲取實體對象集合  
  13.         IQueryable<T> LoadEntites(Func<T,bool> whereLambda );  
  14.    
  15.         //根據條件獲取實體對象集合分頁  
  16.         IQueryable<T> LoadEntites(Func<T,bool> whereLambda, int pageIndex, int pageSize,out int totalCount);  
  17.    
  18.         //增加  
  19.         T AddEntity(T entity);  
  20.    
  21.         //更新  
  22.         T UpdateEntity(T entity);  
  23.    
  24.         //刪除  
  25.         bool DelEntity(T entity);  
  26.    
  27.         //根據條件刪除  
  28.         bool DelEntityByWhere(Func<T, bool> whereLambda);  
  29.     }  
  30.  } 

此時基接口中的CRUD方法就定義完成。接下來我們需要使用T4模版生成所有的實體類接口并實現IBaseDao接口。

三、生成所有的實體類接口

3.1 添加名為IDaoExt 的T4文本模版

3

3.2 在模版中貼入以下代碼,其中注釋的地方需要根據各自的項目進行更改

  1. <#@ template language="C#" debug="false" hostspecific="true"#>  
  2. <#@ include file="EF.Utility.CS.ttinclude"#><#@  
  3.  output extension=".cs"#>  
  4. <#  
  5. CodeGenerationTools code = new CodeGenerationTools(this);  
  6. MetadataLoader loader = new MetadataLoader(this);  
  7. CodeRegion region = new CodeRegion(this, 1);  
  8. MetadataTools ef = new MetadataTools(this);  
  9.  
  10. string inputFile = @"..\\Cnblogs.Rdst.Domain\\Model.edmx";//指定edmx實體模型所在的路徑  
  11.  
  12. EdmItemCollection ItemCollection = loader.CreateEdmItemCollection(inputFile);  
  13. string namespaceName = code.VsNamespaceSuggestion();  
  14.  
  15. EntityFrameworkTemplateFileManager fileManager = EntityFrameworkTemplateFileManager.Create(this);  
  16.  
  17. #>  
  18. using System;  
  19. using System.Collections.Generic;  
  20. using System.Linq;  
  21. using System.Text;  
  22. using Cnblogs.Rdst.Domain;//引用Domain的命名空間  
  23.  
  24. namespace Cnblogs.Rdst.IDAO //實體類接口所在的命名空間  
  25. {  
  26. <#  
  27. foreach (EntityType entity in ItemCollection.GetItems<EntityType>().OrderBy(e => e.Name)) //便利edmx模型中映射的實體對象  
  28. {#>      
  29.     public interface I<#=entity.Name#>Dao:IBaseDao<<#=entity.Name#>> //生成實體對象接口  
  30.     {  
  31.     }  
  32. <#};#>  

3.3 T4模版編輯完成后,Ctrl+s保存,提示是否運行,點擊確認。此時就自動幫我們生成了所有的實體類接口,并實現了IBaseDao接口,相應的也具有了CRUD方法定義。

3.3

3.4

原文鏈接:http://www.cnblogs.com/rdst/archive/2012/08/12/2634159.html

責任編輯:林師授 來源: 博客園
相關推薦

2012-02-03 09:44:33

.NET

2011-04-19 13:53:41

三層架構

2015-07-02 10:57:11

General框架架構開發

2009-07-28 17:25:14

ASP.NET三層結構

2011-05-10 16:44:43

數據訪問層

2012-07-16 10:19:02

MongoDB

2009-08-26 18:20:42

三層架構

2009-09-23 17:29:54

三層框架

2014-10-11 17:06:07

交換機

2011-12-02 10:58:55

交換機

2014-02-12 10:07:07

三層交換原理

2018-10-31 14:32:53

數據中心網絡架構

2010-03-11 10:49:45

三層交換

2023-07-27 08:16:51

數據訪問層項目

2013-10-12 09:58:41

三層交換機三層交換原理交換機

2013-08-14 10:08:07

TrunkVLAN三層交換

2013-01-09 11:00:20

架構開發三層架構.NET架構

2010-01-11 10:19:42

三層交換機配置

2022-08-30 09:57:28

項目傳統對象訪問

2010-01-15 10:06:57

二層交換技術三層交換技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品亚洲一区 | 国产亚洲精品久久久久动 | 97色在线视频 | 久色视频在线 | 久久久久久91 | 午夜精品一区二区三区在线播放 | 免费国产视频 | 天天干天天操天天看 | 日韩欧美国产一区二区 | 亚洲一区中文字幕 | 欧美日韩一区二区三区四区 | 一区二区三区四区不卡视频 | 91久久精品国产免费一区 | 99亚洲 | 亚洲网址在线观看 | 日韩视频中文字幕 | 色综合天天天天做夜夜夜夜做 | 久久久蜜桃 | 亚洲一区二区三区在线 | 在线观看中文视频 | 7777奇米影视| 日韩成人高清 | 成人福利网站 | 天堂一区二区三区 | 国产日韩一区二区 | 午夜成人免费电影 | 日韩免费视频一区二区 | 精品二区 | 亚洲视频一区二区三区 | 国产毛片久久久 | 看亚洲a级一级毛片 | 欧美激情精品久久久久久变态 | 96av麻豆蜜桃一区二区 | 亚洲精品一区二区在线观看 | 在线观看亚洲 | 日韩成人免费视频 | 毛片入口 | 国产剧情一区二区三区 | 日韩一| 天天插天天搞 | 精品国产31久久久久久 |