日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

EntityFreamWork 项目总结

發(fā)布時間:2025/3/13 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EntityFreamWork 项目总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  前段時間一直在忙著處理一個B2C的商城項目,未來得整理這次項目的心得,今天偶有空閑便寫下這篇文章以記錄整個項目的設(shè)計及自我總結(jié)。

這個項目是我綜合傳智播客教學(xué)基礎(chǔ)將傳統(tǒng)三層架構(gòu)與EntityFramework進行整合,其中如有不對之處,還望各位高手指點。

   一、項目結(jié)構(gòu):經(jīng)典三層+EF?

  首先,先說說整個項目的結(jié)構(gòu)。該項目使用 Visual Studio2013+EF4.4 來進行開發(fā),可能有同學(xué)會說,EF6都出來了,為什么還使用4.4版本?

原因一、.net4.0只支持到4.4版本,
    原因二、windows?2003?只支持到?.net?4.0? 該項目整體結(jié)構(gòu)如圖所示,

    

  API:主要用于支持第三方擴展,比如支付和登錄。

  BLL層:業(yè)務(wù)邏輯處理層。

  Common:公用方法封裝。

  DAL層:數(shù)據(jù)訪問層。

  DBSessionFactory:數(shù)據(jù)訪問會話層,主要用于DAL和數(shù)據(jù)庫之間的連接。

  DBUtility:常規(guī)三層中ADO.Net 方式與數(shù)據(jù)庫的連接。

  Interface:封裝了BLL調(diào)用DAL中的IBLL接口,及DAL中方法調(diào)用DBSession時其中的基本的CURD的方法的接口。

  Web.UI:表現(xiàn)層與業(yè)務(wù)邏輯層之間調(diào)用方法的封裝。

  Web:表現(xiàn)層。數(shù)據(jù)來源于UI及BLL層中。

?

  二、數(shù)據(jù)庫主要結(jié)構(gòu)  

  
  主要表結(jié)構(gòu)設(shè)計為:訂單模塊、會員模塊、商品模塊、文章模塊、后臺管理模塊和其他一些表的設(shè)計。

?

?

  三、各個模塊的功能介紹

    1.DBSessionFactory模塊。

      

    DBsession主要用于數(shù)據(jù)庫的交互,進行保存數(shù)據(jù)或者查詢數(shù)據(jù)。

  

1    /// <summary> 2 /// 封裝的數(shù)據(jù)操作類 3 /// </summary> 4 public partial class DBSession 5 { 6 /// <summary> 7 /// EF上下文對象,由工廠創(chuàng)建 8 /// </summary> 9 DbContext dbContext=TDB2C.DbContextFacory.DbContextFactory.GetDbContext(); 10 /// <summary> 11 /// 執(zhí)行特殊SQL語句或存儲過程 12 /// </summary> 13 /// <param name="sql">Sql語句或存儲過程</param> 14 /// <param name="parameters">參數(shù)數(shù)組</param> 15 /// <returns>返回影響行數(shù)</returns> 16 public int ExecutNoneQuery(string sql, SqlParameter[] parameters) 17 { 18 return dbContext.Database.ExecuteSqlCommand(sql, parameters); 19 } 20 /// <summary> 21 /// 執(zhí)行SQL語句,返回指定類型的對象集合 22 /// </summary> 23 /// <typeparam name="T"></typeparam> 24 /// <param name="sql"></param> 25 /// <param name="parameters"></param> 26 /// <returns></returns> 27 public List<T> ExecutDataTable<T>(string sql, SqlParameter[] parameters) 28 { 29 return dbContext.Database.SqlQuery<T>(sql, parameters).ToList(); 30 } 31 /// <summary> 32 /// 將所有操作一次性保存會數(shù)據(jù)庫,避免頻繁連接和操作數(shù)據(jù)庫 33 /// </summary> 34 /// <returns></returns> 35 public int SaveChanges() 36 { 37 try 38 { 39 return dbContext.SaveChanges(); 40 } 41 catch(Exception ex) 42 { 43 TDB2C.Common.LogHelper.LogFatal(ex.Message, ex); 44 throw ex; 45 } 46 } 47 }

    AbstructFacotry.tt 主要用于反射出 DAL對象與DBSession層之間的 IDAL 對象。

  2.Interface中兩個接口。

  IDAL 接口: 將數(shù)據(jù)庫中的常用方法進行抽象。具體實現(xiàn)交給DAL層來完成。

1 public interface IBaseDAL<T> where T:class,new() 2 { 3 /// <summary> 4 /// 根據(jù)條件,獲取當(dāng)個對象,帶排序 5 /// </summary> 6 T LoadEntity(Expression<Func<T, bool>> whereLambda, params OrderModelField[] orderByExpression); 7 /// <summary> 8 /// 獲取滿足條件的所有數(shù)據(jù) 9 /// </summary> 10 IQueryable<T> LoadEntities(Expression<Func<T, bool>> whereLambda, params OrderModelField[] orderByExpression); 11 /// <summary> 12 /// 獲取前幾條數(shù)據(jù),根據(jù)條件,排序條件,數(shù)量 13 /// </summary> 14 IQueryable<T> LoadEntities(int top, Expression<Func<T, bool>> whereLambda, params OrderModelField[] orderByExpression); 15 /// <summary> 16 /// 獲取分頁數(shù)據(jù),根據(jù)過濾條件,排序條件,頁碼,頁容量, 17 /// </summary> 18 IQueryable<T> LoadEntities(int pageIndex, int pageSize, out int totalCount, Expression<Func<T, bool>> whereLambda, params OrderModelField[] orderByExpression); 19 /// <summary> 20 /// 增加新實體 21 /// </summary> 22 T AddEntity(T entity); 23 /// <summary> 24 /// 刪除該實體 25 /// </summary> 26 void DeleteEntity(T entity); 27 /// <summary> 28 /// 修改實體 29 /// </summary> 30 void UpdateEntity(T entity); 31 32 #region 聚合函數(shù) 33 /// <summary> 34 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 35 /// </summary> 36 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 37 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 38 /// <returns>返回合計值</returns> 39 int? GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 40 /// <summary> 41 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 42 /// </summary> 43 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 44 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 45 /// <returns>返回合計值</returns> 46 decimal? GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 47 /// <summary> 48 /// 獲得最大值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 49 /// </summary> 50 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 51 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 52 /// <returns>返回最大值</returns> 53 int? GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 54 /// <summary> 55 /// 獲得最大值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 56 /// </summary> 57 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 58 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 59 /// <returns>返回最大值</returns> 60 decimal? GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 61 /// <summary> 62 /// 獲得最小值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 63 /// </summary> 64 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 65 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 66 /// <returns>返回最小值</returns> 67 int? GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 68 /// <summary> 69 /// 獲得最小值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 70 /// </summary> 71 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 72 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 73 /// <returns>返回最小值</returns> 74 decimal? GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 75 /// <summary> 76 /// 獲得平均值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 77 /// </summary> 78 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 79 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 80 /// <returns>返回平均值</returns> 81 int? GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 82 /// <summary> 83 /// 獲得平均值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 84 /// </summary> 85 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 86 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 87 /// <returns>返回平均值</returns> 88 decimal? GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 89 90 91 92 /// <summary> 93 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則拋異常 94 /// </summary> 95 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 96 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 97 /// <returns>返回合計值</returns> 98 int GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 99 /// <summary> 100 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則拋異常 101 /// </summary> 102 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 103 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 104 /// <returns>返回合計值</returns> 105 decimal GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 106 /// <summary> 107 /// 獲得最大值,若統(tǒng)計字段中包含null值,則拋異常 108 /// </summary> 109 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 110 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 111 /// <returns>返回最大值</returns> 112 int GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 113 /// <summary> 114 /// 獲得最大值,若統(tǒng)計字段中包含null值,則拋異常 115 /// </summary> 116 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 117 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 118 /// <returns>返回最大值</returns> 119 decimal GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 120 /// <summary> 121 /// 獲得最小值,若統(tǒng)計字段中包含null值,則拋異常 122 /// </summary> 123 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 124 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 125 /// <returns>返回最小值</returns> 126 int GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 127 /// <summary> 128 /// 獲得最小值,若統(tǒng)計字段中包含null值,則拋異常 129 /// </summary> 130 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 131 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 132 /// <returns>返回最小值</returns> 133 decimal GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 134 /// <summary> 135 /// 獲得平均值,若統(tǒng)計字段中包含null值,則拋異常 136 /// </summary> 137 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 138 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 139 /// <returns>返回平均值</returns> 140 int GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 141 /// <summary> 142 /// 獲得平均值,若統(tǒng)計字段中包含null值,則拋異常 143 /// </summary> 144 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 145 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 146 /// <returns>返回平均值</returns> 147 decimal GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 148 149 150 151 152 /// <summary> 153 /// 獲得指定條件統(tǒng)計結(jié)果 154 /// </summary> 155 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 156 /// <returns></returns> 157 int GetCount(Expression<Func<T, bool>> whereLambda); 158 159 #endregion 160 161 /// <summary> 162 /// 查找是否存在 163 /// </summary> 164 bool ExistsEntity(Expression<Func<T, bool>> whereLabmda); 165 /// <summary> 166 /// 查找是否存在 167 /// </summary> 168 bool ExistsEntity(int id); 169 } View Code

?

  IBLL接口: 將IDAL中的方法進行擴充,然后交給BLL中去具體實現(xiàn)。

1 /// <summary> 2 /// 業(yè)務(wù)邏輯接口層(Business Logic Layer InterFace),供表現(xiàn)層和業(yè)務(wù)邏輯層使用 3 /// </summary> 4 /// <typeparam name="T"></typeparam> 5 public interface IBaseBLL<T> where T:class,new() 6 { 7 8 /// <summary> 9 /// 獲取指定對象,根據(jù)主鍵Id 10 /// </summary> 11 /// <param name="id">主鍵</param> 12 /// <returns>獲取到的對象,不存在則為Null</returns> 13 T LoadEntity(int id); 14 /// <summary> 15 /// 獲取指定對象,根據(jù)過濾條件字符串 16 /// </summary> 17 /// <param name="strWhere">過濾條件 where條件字符串</param> 18 /// <returns>獲取到的對象,不存在則為Null</returns> 19 T LoadEntity(string strWhere); 20 /// <summary> 21 /// 獲取指定對象,根據(jù)過濾條件字符串,帶排序 22 /// </summary> 23 /// <param name="strWhere">過濾條件 where條件字符串</param> 24 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 25 /// <returns>獲取到的對象,不存在則為Null</returns> 26 T LoadEntity(string strWhere, string fieldOrder); 27 /// <summary> 28 /// 獲取指定對象,根據(jù)過濾條件Lambda表達式 29 /// </summary> 30 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 31 /// <returns>獲取到的對象,不存在則為Null</returns> 32 T LoadEntity(Expression<Func<T, bool>> whereLambda); 33 /// <summary> 34 /// 獲取指定對象,根據(jù)過濾條件Lambda表達式,帶排序 35 /// </summary> 36 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 37 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 38 /// <returns>獲取到的對象,不存在則為Null</returns> 39 T LoadEntity(Expression<Func<T, bool>> whereLambda, string fieldOrder); 40 41 /// <summary> 42 /// 獲取對象集合,根據(jù)過濾條件字符串 43 /// </summary> 44 /// <param name="strWhere">過濾條件 where條件字符串</param> 45 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 46 List<T> LoadEntities(string strWhere); 47 /// <summary> 48 /// 獲取對象集合,根據(jù)過濾條件字符串,帶排序 49 /// </summary> 50 /// <param name="strWhere">過濾條件 where條件字符串</param> 51 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 52 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 53 List<T> LoadEntities(string strWhere, string fieldOrder); 54 55 /// <summary> 56 /// 獲取對象集合,根據(jù)過濾條件Lambda表達式 57 /// </summary> 58 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 59 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 60 List<T> LoadEntities(Expression<Func<T, bool>> whereLambda); 61 /// <summary> 62 /// 獲取對象集合,根據(jù)過濾條件Lambda表達式,帶排序 63 /// </summary> 64 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 65 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 66 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 67 List<T> LoadEntities(Expression<Func<T, bool>> whereLambda, string fieldOrder); 68 69 /// <summary> 70 /// 獲取前幾條對象集合,根據(jù)過濾條件字符串 71 /// </summary> 72 /// <param name="top">指定記錄數(shù)</param> 73 /// <param name="strWhere">過濾條件 where條件字符串</param> 74 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 75 List<T> LoadEntities(int top, string strWhere); 76 /// <summary> 77 /// 獲取前幾條對象集合,根據(jù)過濾條件字符串,帶排序 78 /// </summary> 79 /// <param name="top">指定記錄數(shù)</param> 80 /// <param name="strWhere">過濾條件 where條件字符串</param> 81 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 82 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 83 List<T> LoadEntities(int top, string strWhere, string fieldOrder); 84 85 /// <summary> 86 /// 獲取前幾條對象集合,根據(jù)過濾條件Lambda表達式 87 /// </summary> 88 /// <param name="top">指定記錄數(shù)</param> 89 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 90 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 91 List<T> LoadEntities(int top, Expression<Func<T, bool>> whereLambda); 92 /// <summary> 93 /// 獲取前幾條對象集合,根據(jù)過濾條件Lambda表達式,帶排序 94 /// </summary> 95 /// <param name="top">指定記錄數(shù)</param> 96 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 97 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 98 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 99 List<T> LoadEntities(int top, Expression<Func<T, bool>> whereLambda, string fieldOrder); 100 101 /// <summary> 102 /// 獲取分頁對象集合,根據(jù)過濾條件字符串 103 /// </summary> 104 /// <param name="pageIndex">當(dāng)前頁碼</param> 105 /// <param name="pageSize">頁容量</param> 106 /// <param name="totalCount">總記錄數(shù)</param> 107 /// <param name="strWhere">過濾條件 where條件字符串</param> 108 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 109 List<T> LoadEntities(int pageIndex, int pageSize, out int totalCount, string strWhere); 110 /// <summary> 111 /// 獲取分頁對象集合,根據(jù)過濾條件字符串,帶排序 112 /// </summary> 113 /// <param name="pageIndex">當(dāng)前頁碼</param> 114 /// <param name="pageSize">頁容量</param> 115 /// <param name="totalCount">總記錄數(shù)</param> 116 /// <param name="strWhere">過濾條件 where條件字符串</param> 117 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 118 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 119 List<T> LoadEntities(int pageIndex, int pageSize, out int totalCount, string strWhere, string fieldOrder); 120 121 /// <summary> 122 /// 獲取分頁對象集合,根據(jù)過濾條件Lambda表達式 123 /// </summary> 124 /// <param name="pageIndex">當(dāng)前頁碼</param> 125 /// <param name="pageSize">頁容量</param> 126 /// <param name="totalCount">總記錄數(shù)</param> 127 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 128 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 129 List<T> LoadEntities(int pageIndex, int pageSize, out int totalCount, Expression<Func<T, bool>> whereLambda); 130 /// <summary> 131 /// 獲取分頁對象集合,根據(jù)過濾條件Lambda表達式,帶排序 132 /// </summary> 133 /// <param name="pageIndex">當(dāng)前頁碼</param> 134 /// <param name="pageSize">頁容量</param> 135 /// <param name="totalCount">總記錄數(shù)</param> 136 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 137 /// <param name="fieldOrder">排序字符串 格式為:"id desc" 或者 "sort_id asc,add_time desc,....,id asc" 或者""</param> 138 /// <returns>獲取到的對象集合,不存在則為new List()</returns> 139 List<T> LoadEntities(int pageIndex, int pageSize, out int totalCount, Expression<Func<T, bool>> whereLambda, string fieldOrder); 140 141 142 /// <summary> 143 /// 添加新實體,返回剛添加的實體 144 /// </summary> 145 /// <param name="entity">要添加的實體</param> 146 /// <returns>返回的添加成功后的實體</returns> 147 T AddEntity(T entity); 148 /// <summary> 149 /// 添加實體,返回添加成功的實體及成功數(shù)量 150 /// </summary> 151 /// <param name="entity">要添加的實體</param> 152 /// <param name="changes">成功記錄數(shù)</param> 153 /// <returns>返回添加成功后的實體</returns> 154 T AddEntity(T entity, out int changes); 155 /// <summary> 156 /// 添加實體,返回添加成功的數(shù)量 157 /// </summary> 158 /// <param name="entity">要添加的實體</param> 159 /// <returns>添加成功的數(shù)量</returns> 160 int AddEntityChanges(T entity); 161 162 /// <summary> 163 /// 更新實體,返回是否成功 164 /// </summary> 165 /// <param name="entity">要更新的實體</param> 166 /// <returns>成功狀態(tài) true為成功,false為失敗</returns> 167 bool UpdateEntity(T entity); 168 169 /// <summary> 170 /// 查找是否存在 171 /// </summary> 172 /// <param name="whereLabmda">過濾條件 Lambda表達式</param> 173 /// <returns>存在狀態(tài) true為存在,false為不存在</returns> 174 bool ExistsEntity(Expression<Func<T, bool>> whereLabmda); 175 /// <summary> 176 /// 查找是否存在 177 /// </summary> 178 /// <param name="strWhere">過濾條件 where條件字符串</param> 179 /// <returns>存在狀態(tài) true為存在,false為不存在</returns> 180 bool ExistsEntity(string strWhere); 181 /// <summary> 182 /// 查找是否存在 183 /// </summary> 184 /// <param name="id">對象主鍵Id</param> 185 /// <returns>存在狀態(tài) true為存在,false為不存在</returns> 186 bool ExistsEntity(int id); 187 188 /// <summary> 189 /// 修改指定對象的(一個或多個)字段值 190 /// </summary> 191 /// <param name="id">主鍵Id</param> 192 /// <param name="strValue">字段值,格式必須為"key=value"或"key1=value1&&key2=value2&&...&&keyN=valueN"</param> 193 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 194 bool UpdateFieldsEntity(int id, string strValue); 195 /// <summary> 196 /// 修改滿足條件的所有對象的(一個或多個)字段值 197 /// </summary> 198 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 199 /// <param name="strValue">字段值,格式必須為"key=value"或"key1=value1&&key2=value2&&...&&keyN=valueN"</param> 200 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 201 bool UpdateFieldsEntity(Expression<Func<T, bool>> whereLambda, string strValue); 202 /// <summary> 203 /// 根據(jù)條件,修改滿足條件的所以的對象的(一個或多個)字段值 204 /// </summary> 205 /// <param name="strWhere">過濾條件 where條件字符串</param> 206 /// <param name="strValue">字段值,格式必須為"key=value"或"key1=value1&&key2=value2&&...&&keyN=valueN"</param> 207 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 208 bool UpdateFieldsEntity(string strWhere, string strValue); 209 210 /// <summary> 211 /// 軟刪除實體 212 /// </summary> 213 /// <param name="id">主鍵Id</param> 214 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 215 bool DeleteSoftEntity(int id); 216 /// <summary> 217 /// 軟刪除實體,刪除滿足Lambda條件的實體對象 218 /// </summary> 219 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 220 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 221 bool DeleteSoftEntity(Expression<Func<T, bool>> whereLambda); 222 /// <summary> 223 /// 軟刪除實體,刪除滿足條件的實體對象 224 /// </summary> 225 /// <param name="strWhere">過濾條件 where條件字符串</param> 226 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 227 bool DeleteSoftEntity(string strWhere); 228 229 /// <summary> 230 /// 真刪除實體 231 /// </summary> 232 /// <param name="id">主鍵Id</param> 233 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 234 bool DeleteEntity(int id); 235 /// <summary> 236 /// 真刪除實體,刪除滿足Lambda條件的實體對象 237 /// </summary> 238 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 239 /// <returns>返回成功狀態(tài) true為成功,false為失敗</returns> 240 bool DeleteEntity(Expression<Func<T, bool>> whereLambda); 241 /// <summary> 242 /// 真刪除實體,返回是否成功 243 /// </summary> 244 /// <param name="entity">要刪除的實體</param> 245 /// <returns>成功狀態(tài) true為成功,false為失敗</returns> 246 bool DeleteEntity(T entity); 247 /// <summary> 248 /// 真刪除實體,返回是否成功 249 /// </summary> 250 /// <param name="strWhere">過濾條件 where條件字符串</param> 251 /// <returns>成功狀態(tài) true為成功,false為失敗</returns> 252 bool DeleteEntity(string strWhere); 253 #region 聚合函數(shù) 254 255 /// <summary> 256 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 257 /// </summary> 258 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 259 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 260 /// <returns>返回合計值</returns> 261 int? GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 262 /// <summary> 263 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 264 /// </summary> 265 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 266 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 267 /// <returns>返回合計值</returns> 268 decimal? GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 269 /// <summary> 270 /// 獲得最大值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 271 /// </summary> 272 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 273 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 274 /// <returns>返回最大值</returns> 275 int? GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 276 /// <summary> 277 /// 獲得最大值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 278 /// </summary> 279 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 280 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 281 /// <returns>返回最大值</returns> 282 decimal? GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 283 /// <summary> 284 /// 獲得最小值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 285 /// </summary> 286 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 287 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 288 /// <returns>返回最小值</returns> 289 int? GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 290 /// <summary> 291 /// 獲得最小值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 292 /// </summary> 293 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 294 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 295 /// <returns>返回最小值</returns> 296 decimal? GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 297 /// <summary> 298 /// 獲得平均值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 299 /// </summary> 300 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 301 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 302 /// <returns>返回平均值</returns> 303 int? GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int?>> fieldLambda); 304 /// <summary> 305 /// 獲得平均值,若統(tǒng)計字段中包含null值,則不計入運算結(jié)果 306 /// </summary> 307 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 308 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 309 /// <returns>返回平均值</returns> 310 decimal? GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal?>> fieldLambda); 311 312 313 /// <summary> 314 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則拋異常 315 /// </summary> 316 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 317 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 318 /// <returns>返回合計值</returns> 319 int GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 320 /// <summary> 321 /// 統(tǒng)計合計,若統(tǒng)計字段中包含null值,則拋異常 322 /// </summary> 323 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 324 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 325 /// <returns>返回合計值</returns> 326 decimal GetSum(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 327 /// <summary> 328 /// 獲得最大值,若統(tǒng)計字段中包含null值,則拋異常 329 /// </summary> 330 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 331 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 332 /// <returns>返回最大值</returns> 333 int GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 334 /// <summary> 335 /// 獲得最大值,若統(tǒng)計字段中包含null值,則拋異常 336 /// </summary> 337 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 338 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 339 /// <returns>返回最大值</returns> 340 decimal GetMax(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 341 /// <summary> 342 /// 獲得最小值,若統(tǒng)計字段中包含null值,則拋異常 343 /// </summary> 344 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 345 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 346 /// <returns>返回最小值</returns> 347 int GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 348 /// <summary> 349 /// 獲得最小值,若統(tǒng)計字段中包含null值,則拋異常 350 /// </summary> 351 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 352 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 353 /// <returns>返回最小值</returns> 354 decimal GetMin(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 355 /// <summary> 356 /// 獲得平均值,若統(tǒng)計字段中包含null值,則拋異常 357 /// </summary> 358 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 359 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 360 /// <returns>返回平均值</returns> 361 int GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, int>> fieldLambda); 362 /// <summary> 363 /// 獲得平均值,若統(tǒng)計字段中包含null值,則拋異常 364 /// </summary> 365 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 366 /// <param name="fieldLambda">選擇字段的 Lambda表達式</param> 367 /// <returns>返回平均值</returns> 368 decimal GetAverage(Expression<Func<T, bool>> whereLambda, Expression<Func<T, decimal>> fieldLambda); 369 /// <summary> 370 /// 根據(jù)條件獲得記錄數(shù) 371 /// </summary> 372 /// <param name="whereLambda">過濾條件 Lambda表達式</param> 373 /// <returns>記錄數(shù)</returns> 374 int GetCount(Expression<Func<T, bool>> whereLambda); 375 /// <summary> 376 /// 根據(jù)條件獲得記錄數(shù) 377 /// </summary> 378 /// <param name="strWhere">過濾條件 where字符串</param> 379 /// <returns>記錄數(shù)</returns> 380 int GetCount(string strWhere); 381 #endregion 382 } View Code

  

  3.DAL層

  

  DAL層中,定義了泛型約束的基類,所有的Model 繼承BaseDAL,里面顯示實現(xiàn)了所有的IDAL,具體實現(xiàn)就不貼出來了。

1 public class BaseDAL<T> where T:class,new() 2 { 3   //代碼的具體實現(xiàn)... 4 }

  4.同樣的BLL層中 也是定義相同的泛型約束基類,所有的Model繼承BaseBLL,顯示實現(xiàn)所有IBLL中定義的方法。

?

1 public class BaseBLL<T> where T:class,new() 2 { 3  //代碼的具體實現(xiàn)... 4 }

  

  四、總結(jié)

  這次的項目EntityFrameWork的使用方式依然是 DBFirst模式,在數(shù)據(jù)庫中建立表結(jié)構(gòu)之后,生成對應(yīng)的Model,這里我將原始的T4文件進行了修改,支持將數(shù)據(jù)庫中表名稱,字段備注說明,一并生成到Model中,如:

1 /// <summary> 2 /// 商品評論參數(shù) 標(biāo)簽表 3 /// </summary> 4 [Serializable] 5 public partial class Product_comment_merit:IModel 6 { 7 public Product_comment_merit() 8 { 9 this.Id=0; 10 this.Product_category_ids=""; 11 this.Title=""; 12 this.Sort_id=0; 13 this.Add_time=DateTime.Now; 14 this.Is_del=0; 15 } 16 17 /// <summary> 18 /// 主鍵Id 19 /// </summary> 20 public int Id { get; set; } 21 /// <summary> 22 /// 所屬分類 23 /// </summary> 24 public string Product_category_ids { get; set; } 25 /// <summary> 26 /// 標(biāo)題 27 /// </summary> 28 public string Title { get; set; } 29 /// <summary> 30 /// 排序 31 /// </summary> 32 public int Sort_id { get; set; } 33 /// <summary> 34 /// 添加時間 35 /// </summary> 36 public DateTime Add_time { get; set; } 37 /// <summary> 38 /// 刪除標(biāo)識 39 /// </summary> 40 public int Is_del { get; set; } 41 }

  model.tt文件,將數(shù)據(jù)庫中的關(guān)系,映射成C#中的model,并保留字段備注,表說明。

  所有BLL中的類,都繼承了BaseBLL,所以每一個業(yè)務(wù)邏輯都有IBLL中的 52個方法,這些方法基本涵蓋了所有常規(guī)的數(shù)據(jù)操作。

  自己所特有的業(yè)務(wù)邏輯在單獨編寫,因為T4模版生成出來的Class 都是partial 的。

  整體實現(xiàn)的功能為, 新建立某個關(guān)系模型,重新運行T4模版文件,則 就擁有了該對象的 IBLL中的 52個常用 CRUD的方法。

?

轉(zhuǎn)載于:https://www.cnblogs.com/sandunban/p/5223334.html

總結(jié)

以上是生活随笔為你收集整理的EntityFreamWork 项目总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

999一区二区三区 | 九九热在线精品视频 | 在线观看精品视频 | 黄色大片日本 | 蜜桃视频日本 | 973理论片235影院9 | 久热香蕉视频 | 狠狠网| 欧美亚洲xxx | 天天天天射 | 亚洲第一av在线 | 视频一区久久 | 日韩在线免费观看视频 | 全久久久久久久久久久电影 | 日韩欧美综合在线视频 | 亚洲精品毛片一级91精品 | 国产精品久久久久婷婷二区次 | 懂色av一区二区三区蜜臀 | 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美成年网站 | 国产精品wwwwww | 狠狠色噜噜狠狠狠狠2021天天 | 国产不卡片 | 又色又爽又黄 | 亚洲免费小视频 | 五月婷婷网站 | 亚洲激情在线观看 | 麻豆91在线看 | 国产精品久久久久一区二区三区共 | 精品福利在线 | 亚洲国产精品女人久久久 | av黄色影院| 国产精品高清一区二区三区 | 国产99久久九九精品免费 | 97av超碰| av性在线| 九月婷婷色 | 国产精品人人做人人爽人人添 | 欧美日韩精品在线免费观看 | 欧美一级爽| 亚洲免费观看视频 | 综合网天天 | av黄在线播放 | 亚洲人成免费 | 夜夜爽天天爽 | 色婷婷影视 | 日韩特黄一级欧美毛片特黄 | 国产最新视频在线 | 日韩无在线 | 久久成人18免费网站 | 日韩xxxbbb| av在线播放中文字幕 | 中文av影院| 毛片网免费 | 国产一级做a爱片久久毛片a | 97视频免费观看2区 亚洲视屏 | 国产精品久久久久久久久久久久 | 97成人精品 | 免费在线一区二区 | 亚洲伦理一区二区 | 日韩欧美视频一区二区 | 国产 日韩 欧美 中文 在线播放 | 久久久久久久久久电影 | 夜夜躁狠狠躁日日躁视频黑人 | 天干啦夜天干天干在线线 | 四虎在线观看精品视频 | 国产精品二区在线观看 | 国产一区二区不卡视频 | 四虎影视精品 | 激情综合网五月婷婷 | 97人人视频 | 在线免费观看一区二区三区 | 久久久久欠精品国产毛片国产毛生 | 狠狠狠狠狠狠操 | 亚洲国产资源 | 国产一区二区高清视频 | 五月天激情综合网 | 国产在线高清精品 | 国产成人在线综合 | 国产手机视频在线观看 | 中文字幕999 | 亚洲精品中文字幕视频 | 91香蕉视频在线 | 天天玩天天干天天操 | 国产精品久久久久久久av大片 | 国内精品免费久久影院 | 久久久综合香蕉尹人综合网 | 夜夜天天干 | 久久电影国产免费久久电影 | 综合色综合色 | 丝袜+亚洲+另类+欧美+变态 | 亚洲专区欧美 | 婷婷久久婷婷 | 91香蕉国产在线观看软件 | 国产麻豆精品一区二区 | 久久久国产影视 | 日韩理论片 | 亚洲精品视频大全 | 99热这里只有精品1 av中文字幕日韩 | 99久久99久久精品国产片果冰 | 香蕉97视频观看在线观看 | 久久神马影院 | 综合在线观看色 | 又黄又爽又刺激视频 | 成人福利在线播放 | 精品免费视频123区 午夜久久成人 | 午夜视频在线观看一区 | 成人免费在线网 | 亚洲九九 | 国产在线观看午夜 | 中文字幕高清av | 国产成人精品一区一区一区 | 国产亚洲免费观看 | 精品福利在线 | 日韩在线视频一区二区三区 | 天天操天天干天天操天天干 | 成 人 黄 色 免费播放 | 日日爱影视 | 精品uu| 91自拍视频在线观看 | 国产午夜小视频 | 欧美最新大片在线看 | 国产成人精品免费在线观看 | 88av网站 | 一级一片免费看 | 久久国产精品久久精品 | 97成人超碰 | 欧美日韩亚洲精品在线 | 日本午夜免费福利视频 | 超碰在线网 | 成人av在线观 | 亚洲视频1 | 亚洲综合网站在线观看 | 国产福利a | 国产免费高清 | 成人国产精品一区二区 | 日韩高清在线一区 | 91精品国产92久久久久 | 玖玖在线观看视频 | 蜜臀aⅴ国产精品久久久国产 | 亚洲综合色丁香婷婷六月图片 | 免费在线激情电影 | 欧美日韩高清一区二区 | 97精品国产aⅴ | 日本成人中文字幕在线观看 | 激情av在线播放 | 国产精品久久一卡二卡 | 一级全黄毛片 | 久久久午夜影院 | 国产精品va最新国产精品视频 | 开心激情网五月天 | 免费观看的av网站 | 91视频 - x99av | 狠狠操天天射 | 国产69熟 | 久久夜色电影 | 激情网在线观看 | 日韩有码网站 | 亚州黄色一级 | 成av在线 | 超碰在97 | 超碰成人免费电影 | 香蕉影视app | 亚洲国产高清在线观看视频 | 一级一片免费视频 | 国产又粗又硬又长又爽的视频 | 中文字幕在线观看免费观看 | 国产精品初高中精品久久 | 国产清纯在线 | 四虎精品成人免费网站 | 96av在线| 亚洲精品国产精品国自 | 久久草网| 在线黄色毛片 | 久久艹艹| 国产亲近乱来精品 | 精品国产视频一区 | 亚洲www天堂com| 日韩黄色在线观看 | 亚洲国产精久久久久久久 | 久久免费高清视频 | 狠狠色丁香婷婷综合橹88 | 欧美性成人| 欧美日韩在线网站 | 久久深夜福利免费观看 | 国产精品入口麻豆www | 国产精品久久久亚洲 | 亚洲成人黄色在线 | 国产福利资源 | 激情婷婷在线观看 | 色五月激情五月 | av免费电影在线 | 人人操日日干 | 久久久2o19精品 | 波多野结衣综合网 | 五月天婷亚洲天综合网精品偷 | 毛片永久免费 | 美女av免费| 久久人人爽av | 91香蕉亚洲精品 | 国产在线精品播放 | 亚洲精品色 | 午夜色性片 | 国产在线a不卡 | 在线日韩中文字幕 | www.国产在线 | 中文字幕欧美日韩va免费视频 | 午夜精品一区二区三区在线播放 | 久久狠狠婷婷 | 亚洲精品啊啊啊 | 麻豆视传媒官网免费观看 | 乱男乱女www7788 | 探花视频在线观看免费 | 午夜久操| 91成人免费观看视频 | 99爱国产精品 | 国产精品久久久久永久免费观看 | 麻豆av一区二区三区在线观看 | 免费福利在线观看 | 2017狠狠干 | 九七视频在线观看 | 青草视频免费观看 | 欧美一区二视频在线免费观看 | 国产精品私人影院 | 日本三级香港三级人妇99 | 在线观看一区 | 色婷婷综合五月 | 一本色道久久综合亚洲二区三区 | 亚洲人xxx | 一级欧美日韩 | 成人午夜久久 | 91免费高清| 精品在线观 | 特级黄色片免费看 | 91cn国产在线 | 日日狠狠 | 国产成视频在线观看 | 少妇bbbb揉bbbb日本 | 特黄特色特刺激视频免费播放 | 麻豆视传媒官网免费观看 | 国内精品久久久久久久 | 久久久久成人精品亚洲国产 | 国产麻豆精品传媒av国产下载 | 色片网站在线观看 | 国产精品久久久久久久午夜 | 999电影免费在线观看 | 91完整版观看 | 久草在线播放视频 | 国产美女网 | 日本一区二区三区免费观看 | 久久综合9988久久爱 | 97久久久免费福利网址 | 亚洲欧美日本一区二区三区 | 精品一区精品二区 | 奇米777777 | 日韩大片在线看 | 91精品啪在线观看国产线免费 | 亚洲精选在线观看 | 久久av福利 | 久热爱| 色姑娘综合天天 | 国产精品短视频 | 综合精品久久久 | 免费观看xxxx9999片 | 天天操天天射天天操 | 色综合婷婷 | 久久天天躁狠狠躁夜夜不卡公司 | 久久综合亚洲鲁鲁五月久久 | 91精品国产92久久久久 | 人人澡人人草 | 久久综合给合久久狠狠色 | 天天鲁天天干天天射 | 91热视频| 成人在线免费看 | 国产亚洲无 | 在线视频99 | 免费看成年人 | 久久精品网址 | 精品国产免费久久 | 国产精品一级视频 | 亚洲欧美国产视频 | 久久视频免费 | 97成人啪啪网 | 91精品在线观看视频 | 久久综合九色九九 | 日韩av二区 | 欧美日韩性视频 | 日韩中文字幕亚洲一区二区va在线 | 久久av一区二区三区亚洲 | 久久精品国亚洲 | 亚洲无吗av | 免费看污污视频的网站 | 中日韩三级视频 | 国产情侣一区 | 超碰在线中文字幕 | av福利网址导航 | 人人添人人澡人人澡人人人爽 | 亚洲一级免费电影 | 欧美精品做受xxx性少妇 | 久久久精品欧美一区二区免费 | 在线播放你懂 | 亚洲日本中文字幕在线观看 | 日韩精品免费在线观看视频 | 天天色天天操综合网 | 日韩高清不卡一区二区三区 | 国产精品久久人 | 国产99色 | 欧美日韩中文字幕在线视频 | 中文字幕在线观看网站 | 午夜国产成人 | 91久久久久久久一区二区 | 久草视频在线免费播放 | 国产在线a | 麻豆小视频在线观看 | 久久久久久蜜av免费网站 | 国产精品一区免费观看 | 欧美性网站 | 三级黄色片子 | 成人资源在线 | 91成人蝌蚪 | 久久天天草 | 中文字幕av一区二区三区四区 | 91亚洲国产成人久久精品网站 | 国产一级黄色片免费看 | 开心丁香婷婷深爱五月 | 香蕉视频网站在线观看 | 久久99精品国产一区二区三区 | 超碰97在线资源 | 在线视频专区 | 欧亚久久 | 国产香蕉97碰碰久久人人 | 亚洲免费在线看 | 免费在线观看日韩视频 | 国产手机在线 | 最近能播放的中文字幕 | 久久免费精品 | 西西4444www大胆无视频 | 成人免费大片黄在线播放 | 天堂av在线免费观看 | 在线播放一区 | 成人免费在线观看电影 | 91精彩视频在线观看 | 91视频黄色| 亚洲 欧洲av | 久久久久久久久久久黄色 | 久久久久美女 | 日韩精品一区二区三区免费视频观看 | 韩国一区二区三区在线观看 | 亚洲六月丁香色婷婷综合久久 | www五月天| av免费片| 99视频在线免费播放 | 欧美日韩亚洲精品在线 | 欧洲一区精品 | 久久超级碰视频 | 天天综合网 天天综合色 | av在线播放亚洲 | 久久97久久97精品免视看 | 久久视频在线观看免费 | 97av在线 | 天天色成人 | 日韩毛片在线一区二区毛片 | 五月天亚洲综合 | 韩国精品在线观看 | 亚洲精品国偷拍自产在线观看 | 亚洲精品午夜一区人人爽 | 成人av视屏| 国产午夜不卡 | 久久婷婷五月综合色丁香 | 精品国产伦一区二区三区观看体验 | 最新午夜 | 97国产超碰在线 | 日本公妇在线观看 | 亚洲清纯国产 | 黄网站色成年免费观看 | 五月av在线 | 国产精品美乳一区二区免费 | 色视频在线观看免费 | 日韩精品一区二区三区水蜜桃 | 在线不卡中文字幕播放 | 中文字幕中文字幕在线中文字幕三区 | 中文日韩在线 | 免费观看不卡av | 麻豆91小视频 | 视频二区 | 欧美精品在线视频观看 | 久久免费精品视频 | 黄色小网站在线观看 | 91成人免费看片 | 亚洲情影院 | 91网免费看| 亚洲国内精品在线 | 嫩草伊人久久精品少妇av | 高清国产午夜精品久久久久久 | 国产96av| 久操伊人 | 超碰在线中文字幕 | 久草网在线视频 | 色婷婷成人| 九九免费视频 | 韩国视频一区二区三区 | 五月婷婷视频 | 成人av手机在线 | 在线观看亚洲专区 | 色综合五月| 国产色婷婷精品综合在线手机播放 | 国产69熟| 国产精品久久嫩一区二区免费 | 国内精品久久久久影院优 | 九九九九精品九九九九 | 麻豆视传媒官网免费观看 | 成人天堂网 | 亚洲在线日韩 | 日韩欧美综合精品 | 免费日韩 精品中文字幕视频在线 | 国产黑丝一区二区三区 | 日韩羞羞| 免费视频 三区 | 久久艹艹| 亚洲精品国产精品乱码在线观看 | 美女网站黄在线观看 | 超碰人人草人人 | 一区二区激情视频 | 成年人在线看片 | 国产免费亚洲 | 黄色三级免费 | 最新国产在线观看 | 亚洲精品观看 | 成人aⅴ视频 | 久草在线观 | 精品在线播放视频 | 夜夜躁日日躁狠狠躁 | 欧美亚洲成人xxx | 中文字幕在线观看你懂的 | 一级精品视频在线观看宜春院 | www.888av | 精品亚洲视频在线观看 | 婷婷色中文网 | 国产在线观看午夜 | 69久久久 | 欧美一级裸体视频 | 91亚洲永久精品 | 中文字幕在线观看完整 | 中文字幕在线观看免费高清电影 | 久草视频中文在线 | 成人午夜片av在线看 | 日韩国产精品毛片 | 日韩av进入 | 国产黄色特级片 | 9ⅰ精品久久久久久久久中文字幕 | www.黄色小说.com| 色婷婷免费 | 又色又爽又黄高潮的免费视频 | 国产资源免费在线观看 | 国产午夜三级一区二区三 | 免费日韩一区二区三区 | 国产女人40精品一区毛片视频 | 精品久久久久久久久久久久久久久久 | 在线播放av网址 | 久久这里只有精品视频首页 | 亚洲精品一区二区网址 | 久久99这里只有精品 | 免费在线播放av电影 | www天天干| 久久久久久久久久网 | 91精品系列 | 国产精品av久久久久久无 | 亚洲精品国产区 | 久久视频免费观看 | 天堂av在线网站 | 欧美日韩精品在线播放 | 国产免费黄色 | 成人久久网 | 婷婷在线免费 | 精品久久五月天 | 国产成人精品亚洲 | 久久99热这里只有精品国产 | 国产精品成人a免费观看 | 丁香久久 | 欧美精品九九 | 一区二区三区视频在线 | 在线免费观看麻豆 | 免费成人在线电影 | 亚洲国产精品99久久久久久久久 | 日韩午夜在线 | 美女久久久久 | 亚洲区精品 | 久久久久久综合网天天 | 色婷婷久久久综合中文字幕 | 国产欧美精品xxxx另类 | 亚洲好视频 | 色婷婷综合在线 | 狠狠干狠狠插 | 久久亚洲精品电影 | 91在线小视频 | 香蕉蜜桃视频 | 青春草视频在线播放 | 亚洲蜜桃在线 | 国产精品黑丝在线观看 | 久久国产一二区 | 九九免费在线视频 | 国产在线观看高清视频 | 国产精品国内免费一区二区三区 | 99国产精品久久久久久久久久 | 国产69精品久久久久久 | 亚洲区精品视频 | 在线观看日韩视频 | 欧美孕妇与黑人孕交 | 国产清纯在线 | 成人a在线观看高清电影 | 91视频在线自拍 | 在线视频 你懂得 | 91丨九色丨蝌蚪丨老版 | 一区二区三区在线视频111 | 区一区二区三区中文字幕 | 成人av一二三区 | 免费人成网 | 在线观看精品国产 | 中文字幕一区二区三区在线视频 | 伊人网站| 亚洲精区二区三区四区麻豆 | 免费日韩在线 | 国产精品精品久久久久久 | 国产精品18毛片一区二区 | 91av网址| 福利电影一区二区 | 蜜臀久久99精品久久久无需会员 | 在线一二三区 | 欧美国产不卡 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 91视频国产免费 | av在线h| 色七七亚洲影院 | a极黄色片 | 欧美另类69| 精品影院| 国产自制av | 又紧又大又爽精品一区二区 | 久久精品99国产精品亚洲最刺激 | 午夜久久影视 | 夜夜躁狠狠躁日日躁 | 亚洲乱码久久久 | av字幕在线 | 国产群p视频 | 激情综合亚洲 | 手机av看片| 国产精品久久av | 日韩大片免费在线观看 | 三级视频国产 | 日本特黄一级 | 麻豆91在线 | 日女人免费视频 | 国产精品永久在线观看 | 黄色91在线| 亚洲精品免费视频 | 91精品国产欧美一区二区 | 精品成人a区在线观看 | 国产无遮挡又黄又爽在线观看 | 成人免费一区二区三区在线观看 | 少妇做爰k8经典 | 91亚色在线观看 | 亚洲国产成人精品在线观看 | 麻豆超碰| 久久免费看a级毛毛片 | 91成年视频| 免费在线看v | 黄视频网站大全 | 中文字幕在线观看一区 | 国产在线观看99 | 天天爱天天操天天爽 | 久久精品网址 | 久久人人爽爽 | 日韩一区二区免费播放 | 日韩在线观看中文字幕 | av电影 一区二区 | 亚洲精品欧美视频 | 亚洲成人二区 | 黄色小网站在线观看 | 日日狠狠 | 久久成人在线视频 | 免费看污污视频的网站 | 亚洲精品国产成人av在线 | 高清av网 | 国产黄大片在线观看 | 国产一级在线看 | 日韩在线播放av | 日本性生活免费看 | 欧美狠狠操 | 亚洲一级免费电影 | 精品a视频 | 热久久国产 | av中文字幕网站 | 蜜臀av性久久久久av蜜臀三区 | 久久久久久网址 | 美女网站在线免费观看 | 毛片视频网址 | 亚洲成a人片在线观看网站口工 | 伊人狠狠色丁香婷婷综合 | 去看片| 99综合久久 | 日韩欧美在线国产 | 视频在线精品 | 91亚色视频 | 亚洲乱码中文字幕综合 | 99久久日韩精品视频免费在线观看 | 亚洲精品视频免费 | 欧美激情精品久久久久久变态 | 最新高清无码专区 | 干av在线 | 日韩视频中文 | 久久理论影院 | 国模一二三区 | 国产三级在线播放 | www黄免费| 亚洲激情综合 | 四虎在线观看网址 | 久久久麻豆视频 | 99在线观看免费视频精品观看 | 日韩一区二区三区高清在线观看 | 日韩在线大片 | 91麻豆精品国产午夜天堂 | 美女视频国产 | 国产精品99免视看9 国产精品毛片一区视频 | 91网免费看 | 国产精品原创视频 | 麻豆传媒视频在线 | 午夜黄色影院 | 欧美日韩在线视频免费 | 国产精品嫩草影院123 | 高清av免费一区中文字幕 | 丁香六月色 | 日本h在线播放 | www久久精品 | 91香蕉视频720p | 91福利影院在线观看 | 成人一级片在线观看 | 免费福利在线视频 | 日韩午夜一级片 | 成人免费在线播放 | 精品国产一区二 | 色香蕉网| 欧美性生活久久 | 九九久久精品视频 | 一区二区中文字幕在线观看 | 日本h视频在线观看 | 日本韩国精品一区二区在线观看 | 在线观看资源 | 国产视频亚洲精品 | 欧美在线观看小视频 | 免费福利视频网站 | 99视频精品 | 欧美日韩性视频在线 | 国产精品黑丝在线观看 | 中文在线最新版天堂 | 国产一级h | 欧美另类高清 | 国产精品综合久久久 | 久久综合亚洲鲁鲁五月久久 | 美女视频黄网站 | 免费男女羞羞的视频网站中文字幕 | 久久综合综合久久综合 | 久久精品久久精品久久39 | 91综合久久一区二区 | 日韩在线观看a | 精品亚洲va在线va天堂资源站 | 欧美日韩性视频 | 成在人线av | 国产精品久久久久久久久久久久久久 | av东方在线 | 天天五月天色 | 在线看av网址 | 日韩欧美在线观看一区 | 亚洲电影在线看 | 黄网在线免费观看 | 在线观看av黄色 | 久久久久欠精品国产毛片国产毛生 | 国产精品美女久久久久久久网站 | 亚洲欧美国产精品18p | 欧美男女爱爱视频 | 丁香在线| 在线亚洲天堂网 | 麻豆精品视频在线 | 日韩精品一区在线观看 | 狠狠干免费| 国产精品 中文在线 | 蜜臀aⅴ国产精品久久久国产 | 国产伦精品一区二区三区… | 97国产精品| 国产一级免费在线观看 | 国产精品一区电影 | 国产精品一区二区在线看 | 日韩精品免费一区二区在线观看 | 91精品免费在线 | 外国av网| 久久久久久高清 | 91网在线 | 亚洲欧洲中文日韩久久av乱码 | 国产69久久 | 波多野结衣在线观看一区二区三区 | 日韩三级中文字幕 | 国产高清在线永久 | 午夜精品一区二区三区在线 | 精品视频www| 黄色一及电影 | 人人爱夜夜操 | 亚洲在线视频网站 | 日韩三级一区 | 亚州欧美精品 | 99视频导航 | 在线观看一区二区视频 | ww视频在线观看 | 在线观看国产一区二区 | 国产96在线 | 欧美日韩三区二区 | 亚洲欧美日本一区二区三区 | 久久激情五月婷婷 | 国产在线观看中文字幕 | 精品视频中文字幕 | 色综合天天综合 | 黄在线 | 国产小视频免费在线观看 | 激情欧美日韩一区二区 | 99自拍视频在线观看 | 国产精品视频地址 | 国产高清视频免费在线观看 | 一区二区三区中文字幕在线 | 免费h精品视频在线播放 | 亚洲高清av在线 | 国产资源精品在线观看 | 日本韩国精品在线 | 国产一区在线观看视频 | 黄色网免费| 啪啪凸凸 | 亚洲成人精品在线观看 | 久久久麻豆精品一区二区 | 国产高清在线视频 | 国产字幕在线看 | 国产亚洲精品免费 | 日韩特级毛片 | 91精品麻豆 | 狠狠伊人| 中文字幕日本在线 | 国产在线成人 | 久久精品aaa | 免费人成在线观看 | 欧美一级日韩三级 | 久久久久久综合 | 欧美一区二区在线刺激视频 | 国产精品第三页 | sm免费xx网站 | 国产精品久久久久久久久费观看 | 免费av的网站 | 国产伦理久久精品久久久久_ | 久久久999| 成人午夜电影在线播放 | 免费看日韩片 | 久久经典国产视频 | 中文字幕在线看 | 久草精品电影 | 黄色tv视频 | 国产一区二区成人 | 国内精品久久久久影院一蜜桃 | 中文字幕在线观看第一区 | 日韩av区| 国产一区在线免费观看视频 | 国产呻吟在线 | 久草在线手机观看 | 激情婷婷综合网 | 国产精品精品久久久久久 | 国产精品自在线拍国产 | 亚洲成人资源在线 | 久久国产手机看片 | 在线观看国产日韩欧美 | 久久久久久久免费观看 | 亚洲视频456 | 色 中文字幕| 九九免费精品 | 日韩城人在线 | 亚洲精品国产精品国产 | 青青河边草免费视频 | 日韩免费高清 | 久久久私人影院 | 性日韩欧美在线视频 | 人人澡超碰碰 | 色综合久久久久综合99 | 国产一级二级在线观看 | 久久国产三级 | 婷婷色中文字幕 | 97视频在线 | 五月天六月丁香 | 国产精品自产拍在线观看网站 | 有码中文在线 | 国产精品福利久久久 | 波多野结衣资源 | 国产黄色大全 | 亚洲最大成人免费网站 | 国产精品一区二区免费看 | 国产精品久久久电影 | 日韩在线视频免费观看 | 国产色视频| 狠狠色噜噜狠狠狠狠 | 91 在线视频| 亚洲第一中文网 | 亚洲va欧美va人人爽 | 8x成人在线 | 国产精品一区二区三区视频免费 | 97国产小视频 | 狠狠操狠狠干2017 | 午夜三级毛片 | 午夜美女福利 | 国产99久久久国产 | 欧美在线aaa | 免费看色网站 | 免费网站在线观看成人 | 国产正在播放 | 久久久精品99 | 在线视频 成人 | а中文在线天堂 | 美女免费视频一区二区 | 亚洲视频 视频在线 | 曰本免费av | 日韩在线国产精品 | 午夜视频在线观看一区二区三区 | 中文字幕乱偷在线 | 日批网站免费观看 | 国产麻豆剧传媒免费观看 | 免费在线观看午夜视频 | 91网免费观看 | av在线进入 | 在线国产日韩 | 精品在线免费观看 | 日韩欧美精品一区二区 | 一级片免费视频 | 国产黄色精品在线观看 | av字幕在线 | 亚洲精品免费在线观看视频 | 国产网站在线免费观看 | 四虎成人精品永久免费av九九 | 婷婷av在线| 免费男女羞羞的视频网站中文字幕 | 免费观看丰满少妇做爰 | 亚洲永久精品在线观看 | 久久久久福利视频 | 一级免费看 | 欧美大片大全 | 国产无吗一区二区三区在线欢 | 亚洲va欧美va人人爽 | 亚洲精品字幕 | 日韩在线国产 | 蜜臀av一区二区 | 激情六月婷婷久久 | 狠狠艹夜夜干 | 国产精品二区在线 | 久久情网 | 亚洲japanese制服美女 | 手机看片国产日韩 | 精品国内自产拍在线观看视频 | 涩涩网站在线播放 | 天天人人 | 亚洲欧美日韩精品一区二区 | 激情综合色播五月 | 婷婷草 | 国产1区2区3区精品美女 | 国产高清不卡一区二区三区 | 国产视频资源在线观看 | 久在线| 中文字幕av播放 | 99精品国产一区二区三区不卡 | 久草网站在线 | 日韩女同av| 久久国产精品免费看 | 激情欧美在线观看 | 日韩在线视频线视频免费网站 | 中文字幕乱视频 | 成人黄色在线电影 | 日韩在线电影观看 | 91丨九色丨丝袜 | 奇米影视777四色米奇影院 | 国产美女精品视频免费观看 | 国产九九精品 | 成人免费观看在线视频 | 亚洲色图av | 久久97久久| 激情综合五月天 | 天天操综合网 | 色网站在线| 亚洲最大成人免费网站 | 日韩高清免费在线 | 欧美一级免费在线 | 亚洲资源在线网 | 成人免费视频a | 久久一区二区免费视频 | 少妇精品久久久一区二区免费 | 久久国产精品99久久久久久丝袜 | 天天干.com | 九九综合久久 | 日韩电影在线观看一区二区三区 | 九九视频一区 | 欧美三级高清 | 久久a免费视频 | 欧美一区二区三区在线观看 | 免费高清在线视频一区· | 日韩高清成人在线 | 在线观看黄色免费视频 | 亚洲精品视频中文字幕 | 久久高清av | 欧美日韩久久不卡 | 成人免费毛片aaaaaa片 | 天天爽夜夜操 | 毛片精品免费在线观看 | 五月天色中色 | 成人a v视频| www.夜夜骑.com | 精品国产视频在线 | 国产精品video爽爽爽爽 | 成人黄色电影免费观看 | 人人玩人人添人人澡超碰 | 色亚洲网 | 成人午夜精品福利免费 | 国产亚洲在线视频 | 国产精品九九九 | 在线 国产 亚洲 欧美 | 人人干在线观看 | 久久玖| 麻豆影音先锋 | 亚洲午夜久久久久久久久电影网 | 激情视频综合网 | 伊人狠狠色丁香婷婷综合 | 日韩一区二区三区在线观看 | 精品一区在线看 | 一区二区三区中文字幕在线 | 91香蕉视频好色先生 | 夜夜躁日日躁狠狠久久av | 久国产在线播放 | 精品色综合 | 黄网站app在线观看免费视频 | 午夜视频久久久 | 国产精品久久亚洲 | 国产99久久99热这里精品5 | 欧美日韩高清一区二区 国产亚洲免费看 | 日本黄色免费电影网站 | 亚洲成a人片在线观看网站口工 | 国产91国语对白在线 | 久久久18| 国产在线资源 | 免费v片 | 丰满少妇在线观看资源站 | 国产日韩精品一区二区三区在线 | 国产精品一区二区av日韩在线 | 国产成人精品一区二区三区福利 | 精品毛片在线 | 欧美性黑人 | 国产精品一区二区在线观看 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | www.久久91| 婷婷六月中文字幕 | 免费视频久久久久久久 | 色香蕉在线 | 在线免费视频 你懂得 | 国产午夜精品一区二区三区嫩草 | 在线观看黄色的网站 | 国产精品原创av片国产免费 | 久草网首页 | 九九热在线免费观看 | 三级av在线| 国产999精品久久久久久麻豆 | 亚洲国产日韩欧美在线 | 18网站在线观看 | 日韩在线观看三区 | 免费看黄色大全 | 久久久久成 | 99在线免费视频 | 国产精品成人自产拍在线观看 | 五月婷香| 国产精品成人一区 | av7777777 | 成人夜晚看av| 狠狠撸电影 | 天天干,夜夜爽 | 超碰人人草 | av免费网站 | 夜夜骑日日| 99久久久国产精品美女 | 婷婷婷国产在线视频 | 欧美午夜精品久久久久久浪潮 | 一区二区三区四区五区在线 | 亚洲日本激情 | 色偷偷97 | 亚洲伦理中文字幕 | 日本在线视频网址 | 日韩av成人在线 | 国产精品久久久久久久久久新婚 | 在线观看日韩视频 | 中文字幕一区二区三区在线视频 | 91欧美日韩国产 | 亚洲精品午夜aaa久久久 | 91看片网址 | 精品国产成人在线影院 |