精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

淺談LINQ to ACCESS簡單實現

開發 后端
為了節省服務器,網站的訪問量也不算太大,一直想用ACCESS數據庫,但苦于LINQ不支持ACCESS,在網上找了很多的方法,但覺的都不是太完美。在看了LINQ to ACCESS的源碼后,才發現,linq to sql 可以用于ACCESS數據庫。

在LINQ to SQL里面都是用的DbConnection,而不是SQLConnection,這樣的話理論上可以支持所有的數據,但對于一些數據庫的支持可能不是太好。例如分頁,SQL Server 2000,SQL Server 2005,SQL Server 2008數據,使用LINQ的代碼都不一樣,而ACCESS和SQL Server 2000比較接近,就可以直接使用SQL Server 2000Provider。查了一些資料看到,理論有那個數據庫provider,就可以支持這種數據庫。也看了dbLINQ 0.8支持不同數據庫的源碼,但自己能力有限不能寫一個ACCESS的,還是用官方的吧。下邊說一下方法。

其實他不太麻煩,只是改一下,*.designer.cs文件里的代碼。因為ACCESS 不支持dbo,而LINQ to SQL里數據表前面都有dbo.的前綴, [Table(Name="dbo.wjk3")],將dbo.去掉,不然的話,會提示你找不到dbo數據庫,這點上,自己走了不少彎路。在public partial class DDataContext: System.Data.LINQ.DataContext上邊加上, [Provider(typeof(System.Data.LINQ.SQLClient.SQL Server 2000Provider))]設定為SQL Server 2000Provider,不然的話 LINQ 里面的first 不能使用,另外分頁也不能使用,因為他默認的是SQL Server 2008Provider。

這一點很重要,到現在為止,基本上解決LINQ to ACCESS的使用,但還有一點問題,從數據庫讀取一條記錄,修改后使用SubmitChanges()更新,提示錯誤,不能修改,錯誤內容:找不到行或行已更改。這一點可以使用一些自定義方法來實現更新,使用ExecuteCommand()直接執行更新SQL語句來實現。感覺LINQ to SQL的跟蹤,如果不適用SubmitChanges()更新的話,跟蹤也每太大的意義,實現跟蹤可能會降低系能,另外添加,刪除也依賴跟蹤,如果不使用跟蹤的話,還要擴展添加,刪除的方法。

  1. public partial class dbgame  
  2.     {  
  3.         public IQueryable<TEntity> Find<TEntity>(TEntity obj) where TEntity : class  
  4.         {  
  5.             //獲得所有property的信息  
  6.             PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);  
  7.             //構造初始的query  
  8.             IQueryable<TEntity> query = this.GetTable<TEntity>().AsQueryable<TEntity>();  
  9.             //遍歷每個property  
  10.             foreach (PropertyInfo p in properties)  
  11.             {  
  12.                 if (p != null)  
  13.                 {  
  14.                     Type t = p.PropertyType;  
  15.                     //加入object,Binary,和XDocument, 支持sql_variant,imager 和xml等的影射。  
  16.                     if (t.IsValueType || t == typeof(string) || t == typeof(System.Byte[])  
  17.                       || t == typeof(object) || t == typeof(System.Xml.Linq.XDocument)  
  18.                       || t == typeof(System.Data.Linq.Binary))  
  19.                     {  
  20.                         //如果不為null才算做條件  
  21.                         if (p.GetValue(obj, null) != null)  
  22.                         {  
  23.                             if (((ColumnAttribute)(p.GetCustomAttributes(typeof(ColumnAttribute), true)[0])).IsPrimaryKey && Convert.ToInt32(p.GetValue(obj, null)) == 0)  
  24.                             {  
  25.                             }  
  26.                             else  
  27.                             {  
  28.                                 ParameterExpression param = Expression.Parameter(typeof(TEntity),"c");  
  29.                                 Expression right = Expression.Constant(p.GetValue(obj, null));  
  30.                                 Expression left = Expression.Property(param, p.Name);  
  31.                                 Expression filter = Expression.Equal(left, right);  
  32.                                 Expression<Func<TEntity, bool>> pred = Expression.Lambda<Func<TEntity, bool>>(filter, param);  
  33.                                 queryquery = query.Where(pred);  
  34.                             }  
  35.                         }  
  36.                     }  
  37.                 }  
  38.             }  
  39.             return query;  
  40.         }  
  41.         public void Update<TEntity>(TEntity obj) where TEntity : class  
  42.         {  
  43.             string str = "update  " + typeof(TEntity).Name + " set ";  
  44.             string cols = "";  
  45.             string where="";  
  46.             //獲得所有property的信息  
  47.             PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);  
  48.             //構造初始的query  
  49.  
  50.             IQueryable<TEntity> query = this.GetTable<TEntity>().AsQueryable<TEntity>();  
  51.             //遍歷每個property  
  52.             foreach (PropertyInfo p in properties)  
  53.             {  
  54.                 if (p != null)  
  55.                 {  
  56.                     Type t = p.PropertyType;  
  57.                     //加入object,Binary,和XDocument, 支持sql_variant,imager 和xml等的影射。  
  58.                     if (t.IsValueType || t == typeof(string) || t == typeof(System.Byte[])  
  59.                       || t == typeof(object) || t == typeof(System.Xml.Linq.XDocument)  
  60.                       || t == typeof(System.Data.Linq.Binary))  
  61.                     {  
  62.                         //如果不為null才算做條件  
  63.  
  64.                         if (p.GetValue(obj, null) != null)  
  65.                         {  
  66.                             if (((ColumnAttribute)(p.GetCustomAttributes(typeof(ColumnAttribute), true)[0])).IsPrimaryKey)  
  67.                             {  
  68.                                 where +=" where "+p.Name+"="+p.GetValue(obj,null);  
  69.                             }  
  70.                             else  
  71.                             {  
  72.                                  
  73.                                 if (t == typeof(System.Byte[]) || t == typeof(System.Int32) || t == typeof(Double) || t == typeof(float))  
  74.                                     cols += p.Name + "=" + p.GetValue(obj, null) + ",";  
  75.                                 else  
  76.                                     cols += p.Name + "='" + p.GetValue(obj, null) + "',";  
  77.                             }  
  78.                         }  
  79.                     }  
  80.                 }  
  81.             }  
  82.  
  83.             str += cols.Substring(0,cols.Length-1) +where;  
  84.             HttpContext.Current.Response.Write("<br>"+str+"<br>");  
  85.              this.ExecuteCommand(str);  
  86.             
  87.         }  
  88.         public void Insert<TEntity>(TEntity obj) where TEntity : class  
  89.         {  
  90.             string str = "insert into [" + typeof(TEntity).Name + "] (";  
  91.             string cols = "";  
  92.             string vals = "";  
  93.             string where = "";  
  94.             //獲得所有property的信息  
  95.             PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);  
  96.             //構造初始的query  
  97.  
  98.             IQueryable<TEntity> query = this.GetTable<TEntity>().AsQueryable<TEntity>();  
  99.             //遍歷每個property  
  100.             foreach (PropertyInfo p in properties)  
  101.             {  
  102.                 if (p != null)  
  103.                 {  
  104.                     Type t = p.PropertyType;  
  105.                     //加入object,Binary,和XDocument, 支持sql_variant,imager 和xml等的影射。  
  106.                     if (t.IsValueType || t == typeof(string) || t == typeof(System.Byte[])  
  107.                       || t == typeof(object) || t == typeof(System.Xml.Linq.XDocument)  
  108.                       || t == typeof(System.Data.Linq.Binary))  
  109.                     {  
  110.                         //如果不為null才算做條件  
  111.  
  112.                         if (p.GetValue(obj, null) != null)  
  113.                         {  
  114.                             //if (((ColumnAttribute)(p.GetCustomAttributes(typeof(ColumnAttribute), true)[0])).IsPrimaryKey && Convert.ToInt32(p.GetValue(obj,null))==0)  
  115.                             //{  
  116.                                   
  117.                             //}  
  118.                             //else  
  119.                             //{  
  120.                                 cols += "["+p.Name + "],";  
  121.                                 if (t == typeof(System.Byte[]) || t == typeof(System.Int32) || t == typeof(Double) || t == typeof(float))  
  122.                                     vals += p.GetValue(obj, null) + ",";  
  123.                                 else  
  124.                                     vals +="'"+ p.GetValue(obj, null) + "',";  
  125.                            // }  
  126.                         }  
  127.                     }  
  128.                 }  
  129.             }  
  130.  
  131.             str += cols.Substring(0, cols.Length - 1) + ") values (" + vals.Substring(0, vals.Length - 1) + ")";  
  132.             HttpContext.Current.Response.Write("<br>" + str + "<br>");  
  133.             this.ExecuteCommand(str);  
  134.  
  135.         }  
  136.         public void Delete<TEntity>(TEntity obj) where TEntity : class  
  137.         {  
  138.             string str = "delete from [" + typeof(TEntity).Name+"] where ";  
  139.             string cols = "";  
  140.             string where = "";  
  141.             //獲得所有property的信息  
  142.             PropertyInfo[] properties = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);  
  143.             //構造初始的query  
  144.  
  145.             IQueryable<TEntity> query = this.GetTable<TEntity>().AsQueryable<TEntity>();  
  146.             //遍歷每個property  
  147.             foreach (PropertyInfo p in properties)  
  148.             {  
  149.                 if (p != null)  
  150.                 {  
  151.                     Type t = p.PropertyType;  
  152.                     //加入object,Binary,和XDocument, 支持sql_variant,imager 和xml等的影射。  
  153.                     if (t.IsValueType || t == typeof(string) || t == typeof(System.Byte[])  
  154.                       || t == typeof(object) || t == typeof(System.Xml.Linq.XDocument)  
  155.                       || t == typeof(System.Data.Linq.Binary))  
  156.                     {  
  157.                         //如果不為null才算做條件  
  158.  
  159.                         if (p.GetValue(obj, null) != null)  
  160.                         {  
  161.                             if (((ColumnAttribute)(p.GetCustomAttributes(typeof(ColumnAttribute), true)[0])).IsPrimaryKey && Convert.ToInt32(p.GetValue(obj, null)) == 0)  
  162.                             {  
  163.  
  164.                              }  
  165.                             else  
  166.                             {  
  167.                                 if (t == typeof(System.Byte[]) || t == typeof(System.Int32) || t == typeof(Double) || t == typeof(float))  
  168.                                     where +="["+p.Name+"]" + "=" + p.GetValue(obj, null) + " and ";  
  169.                                 else  
  170.                                     where += "[" + p.Name + "]" + "='" + p.GetValue(obj, null) + "' and ";  
  171.                             }  
  172.                         }  
  173.                     }  
  174.                 }  
  175.             }  
  176.  
  177.             str +=where.Substring(0,where.Length-5);  
  178.             HttpContext.Current.Response.Write("<br>" + str + "<br>");  
  179.             this.ExecuteCommand(str);  
  180.  
  181.         }  
  182.         public IQueryable<TEntity> FindKey<TEntity>(object value) where TEntity : class  
  183.         {  
  184.             //獲得所有property的信息  
  185.             PropertyInfo[] properties = typeof(TEntity).GetProperties(BindingFlags.Public | BindingFlags.Instance);  
  186.             //構造初始的query  
  187.             IQueryable<TEntity> query = this.GetTable<TEntity>().AsQueryable<TEntity>();  
  188.             //遍歷每個property  
  189.             foreach (PropertyInfo p in properties)  
  190.             {  
  191.                 if (p != null)  
  192.                 {  
  193.                     Type t = p.PropertyType;  
  194.                     //加入object,Binary,和XDocument, 支持sql_variant,imager 和xml等的影射。  
  195.                     if (t.IsValueType || t == typeof(string) || t == typeof(System.Byte[])  
  196.                       || t == typeof(object) || t == typeof(System.Xml.Linq.XDocument)  
  197.                       || t == typeof(System.Data.Linq.Binary))  
  198.                     {  
  199.                         //如果不為null才算做條件  
  200.                         if (((ColumnAttribute)(p.GetCustomAttributes(typeof(ColumnAttribute), true)[0])).IsPrimaryKey)  
  201.                         {  
  202.                             ParameterExpression param = Expression.Parameter(typeof(TEntity), "d");  
  203.                             Expression right = Expression.Constant(value);  
  204.                             Expression left = Expression.Property(param, p.Name);  
  205.                             Expression filter = Expression.Equal(left, right);  
  206.  
  207.                             Expression<Func<TEntity, bool>> pred = Expression.Lambda<Func<TEntity, bool>>(filter, param);  
  208.  
  209.                             queryquery = query.Where(pred);  
  210.                            break;  
  211.                         }  
  212.                     }  
  213.                 }  
  214.             }  
  215.             return query;  
  216.         }  
  217.     } 

沒有解決的問題:

怎樣能解決更新的時候能直接使用SubmitChanges();

【編輯推薦】

  1. 使用LINQ查詢泛型字典Dictionary
  2. 淺析Linq to SQL更新數據時容易忽略的問題
  3. 淺談LINQ to SQL集成數據庫語言優劣
  4. LINQ橫向對比foreach方法
  5. 淺談LINQ如何插入刪除和更新數據庫記錄備注
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-09-08 10:03:13

Linq查詢Acces

2009-09-08 16:55:01

Linq實現XML轉換

2009-09-09 15:44:22

Linq DataCo

2009-09-15 16:31:15

LINQ Custom

2009-09-15 15:18:40

Linq連接查詢

2009-09-17 09:24:57

Linq實現分頁

2009-09-15 11:34:47

Linq多條件查詢

2009-09-11 11:25:35

LINQ函數集合

2009-09-10 15:45:07

Linq使用Selec

2009-09-10 11:29:00

LINQ to SQL

2009-09-16 11:15:52

Linq聯接數據

2009-09-14 09:49:08

Linq擴展函數

2009-09-08 15:19:52

Linq Where操

2009-09-07 17:32:14

LINQ檢索數據

2009-09-17 10:40:23

linq存儲過程

2009-09-17 09:57:08

linq創建數據庫

2009-09-09 11:07:52

LINQ to SQL

2009-09-18 16:32:51

Linq委托實例化

2009-09-14 15:45:28

LINQ刪除XML節點

2009-09-15 11:08:01

LinQ調用存儲過程
點贊
收藏

51CTO技術棧公眾號

涩涩视频在线免费看| 久久久久久久久久久久久女国产乱| 波多野结衣一二区| 国产麻豆乱码精品一区二区三区 | 日韩电影一区| 天天操天天射天天爽| 91欧美精品成人综合在线观看| 成人免费毛片app| 超碰在线观看免费版| 美女av免费在线观看| 亚洲精品videossex少妇| 久久久久电影| 91在线视频国产| 久久综合一区| 婷婷中文字幕综合| 性插视频在线观看| 成人国产一区二区三区| 5566中文字幕一区二区电影| 日韩精品免费| 一级片视频网站| 亚洲午夜精品国产| 欧美亚男人的天堂| 欧美美乳视频| 成人黄色三级视频| 亚洲人成网站在线播放2019| 91麻豆国产自产在线观看亚洲| 免费国产羞羞网站美图| 国产中文日韩欧美| 国产精品国产三级国产aⅴ入口| 神马电影网我不卡| 久久只有这里有精品| 日本免费一区二区三区视频观看| 91蝌蚪porny| 日韩天堂在线| 国产精品99久久久久久成人| 51国偷自产一区二区三区| 国产精品传媒视频| 精品国产一区二区三区2021| 熟妇人妻无乱码中文字幕真矢织江| 日韩av在线播放资源| 国产精品刘玥久久一区| 538在线视频观看| 中文字幕亚洲综合久久| 国产毛片精品国产一区二区三区| 女人天堂av在线播放| 无码人妻aⅴ一区二区三区| 81精品国产乱码久久久久久| 中文字幕五月欧美| 红杏视频成人| 国产精品高潮呻吟AV无码| 蜜桃网站在线观看| 在线精品国产欧美| 成人免费视频app| 男人天堂久久| 亚洲精品77777| 影音先锋在线亚洲| 亚洲美女激情视频| 成人av电影免费在线播放| 天堂久久一区| 中文在线字幕av| 91在线视频观看免费| 91精品国产沙发| 精品久久久久国产| 亚洲电影av| 天干夜夜爽爽日日日日| 国产视频一视频二| 日韩av黄色在线观看| 午夜精品福利久久久| 国产精品久久| 华人av在线| 无码人妻久久一区二区三区| 人妻丰满熟妇av无码区app| 91色琪琪电影亚洲精品久久| 日韩欧美一区二区免费| 99久久国产综合精品色伊| 天堂在线精品| 丝袜国产在线| 成人午夜视频在线播放| 亚洲另类第一页| 亚洲一区二区三区久久| 亚洲精品美女久久| 亚洲国产精品激情在线观看| 禁久久精品乱码| 免费电影日韩网站| 中文字幕日韩三级| 国产成人av免费观看| 99精品国产一区二区| 精品国产免费一区二区三区香蕉 | 日本a在线天堂| 国内外成人免费激情在线视频网站| 亚州成人在线电影| 国产综合久久久久影院| jazzjazz国产精品麻豆| 77777影视视频在线观看| 波多野结衣在线网址| 中国丰满人妻videoshd | 欧美日韩国产高清| 日本免费一区二区六区| 这里只有精品9| 中文字幕日韩欧美一区二区三区| 日韩激情一区| 男人皇宫亚洲男人2020| 深夜影院在线观看| 久久精品视频久久| 麻豆精品国产传媒av| 国产卡一卡二在线| 亚洲自拍在线观看| zzijzzij亚洲日本成熟少妇| 欧美私人免费视频| 99久久国产综合精品色伊| 欧美在线高清| 免费成人高清在线视频| 黄色软件在线观看| 日韩精品在线不卡| 韩国三级hd两男一女| www.午夜色| 国产欧美 在线欧美| 亚洲视频视频在线| 91久久精品国产91性色tv| 99久久香蕉| 女同一区二区免费aⅴ| 在线免费观看中文字幕| 日韩在线免费观看av| 无码专区aaaaaa免费视频| 国产精品视频免费观看| 2019国产精品自在线拍国产不卡| 亚洲第一在线视频| 91久久国产综合久久| 成人免费在线播放视频| 91麻豆6部合集magnet| 麻豆精品视频在线观看| 宅男噜噜噜66国产日韩在线观看| 竹菊久久久久久久| 天堂久久av| 亚洲成人激情社区| 91在线三级| 在线国产情侣| 免费国产精品视频| 91丨九色丨海角社区| 国产传媒免费在线观看| 亚洲av无码一区东京热久久| 成人在线观看黄| 偷拍盗摄高潮叫床对白清晰| 久久九九视频| 久久一区免费| 国产精品久久久久av福利动漫| 亚洲第五色综合网| 一本一道综合狠狠老| 亚洲大片免费看| 亚洲免费在线观看| 日韩一区欧美一区| 久久久99精品久久| 成人美女在线视频| 国产一区二区成人久久免费影院 | 日韩女同一区二区三区 | 亚洲网站三级| 成人午夜sm精品久久久久久久| 91精品影视| **在线精品| 777午夜精品电影免费看| 樱桃视频成人在线观看| av老司机在线观看| 18加网站在线| 国产午夜精品久久久久免费视| 国产小视频在线| www亚洲人| 久草中文在线| 精品精品导航| 欧美精品总汇| 日韩成人一区| 国产精品一区二区精品视频观看| 精品国产一级片| 中文字幕码精品视频网站| 精品无码一区二区三区的天堂| 午夜影院免费在线观看| 在线观看日本网站| 一级片一区二区三区| 国产成人自拍一区| 黄视频在线播放| 91社区在线高清| 免费观看在线午夜影视| 三级资源在线| 成人国产精品一区二区免费麻豆| 天堂va欧美ⅴa亚洲va一国产| 婷婷精品在线观看| 亚洲香蕉av| 久久午夜精品一区二区| 国产一区二区成人久久免费影院| 丁香婷婷深情五月亚洲| 久久久精品日韩欧美| 日韩一区日韩二区| 日韩欧美国产一区二区| 日韩一区二区三区视频在线观看| 精品无人区乱码1区2区3区在线| 久久国内精品一国内精品| 欧美亚洲日本网站| 国产精华一区二区三区| 午夜精品福利一区二区| www.xxx亚洲| 精品人妻一区二区三区日产乱码卜| 美国一级片在线观看| 在线观看日韩中文字幕| 精品国产aⅴ一区二区三区东京热 久久久久99人妻一区二区三区 | 国产欧美精品一区二区| 欧美福利精品| 中文字幕无码精品亚洲35| 国内自拍偷拍视频| www.毛片com| 国产视频一二三四区| 午夜在线播放| 亚洲成a人片777777久久| 国际精品欧美精品| 麻豆九一精品爱看视频在线观看免费| www..com久久爱| 高跟丝袜一区二区三区| 亚洲精品一区二区在线| 国产不卡av在线免费观看| 乱色588欧美| 国产福利视频在线播放| www久久久久久久| 国产美女免费看| 精精国产xxxx视频在线中文版| gogo人体一区| 麻豆精品91| 亚洲一区二区三区美女| 精品中文视频在线| 成人中文字幕+乱码+中文字幕| 懂色av一区二区三区四区五区| 伊人五月天婷婷| 欧美人妻一区二区| 天天影院图片亚洲| 深夜福利视频在线观看| 小h片在线观看| 99久久.com| 91色.com| 精品粉嫩aⅴ一区二区三区四区| 欧美专区在线视频| 亚洲av综合色区| 亚洲做受高潮无遮挡| 国产又爽又黄又嫩又猛又粗| h片精品在线观看| 欧美肥老太太性生活| 波多野结衣精品在线| 91精品国产aⅴ一区二区| 国产精品白嫩美女在线观看| 国产青青在线视频| 亚洲欧美精品aaaaaa片| 深夜福利视频网站| 一区二区三区四区视频免费观看 | 一本久久综合亚洲鲁鲁| 久久精品国产一区二区三区日韩| 日韩欧美中文视频| 中文字幕第31页| 345成人影院| 久久资源在线| 精品久久久国产| 97精品在线观看| 五十路熟女丰满大屁股| 久久久久久久久精| 国产成人精品777777| 韩国主播福利视频一区二区三区| 精品91在线| 日韩欧美极品在线观看| 欧美成人一区二区| 国产精品久久久久久久美男| www.超碰com| 中国精品一区二区| 51亚洲精品| 久久精品一区八戒影视| 伊人久久大香线蕉av一区二区| 日韩av电影在线观看| 国产精品理论在线| 97电影在线观看| 欧美另类视频| 精品久久久免费| 成人高清视频观看www| 成人区人妻精品一区二| 337p日本欧洲亚洲大胆鲁鲁| 亚洲激情午夜| 欧美人动与zoxxxx乱| 狠狠色噜噜狠狠色综合久 | 欧美美女黄视频| 国产亚洲第一区| 免费人成视频在线| 国产69精品久久| 久久久久久久久久久黄色 | 亚洲网站在线播放| 国产大尺度在线观看| 国产成人在线视频观看| 欧美在线se| 国产亚洲欧洲一区高清在线观看| 欧美福利视频在线观看| 在线观看岛国av| 国内三级在线观看| 欧美深夜福利| 69久久夜色精品国产69蝌蚪网 | 日韩高清第一页| 成人精品在线播放| 天天综合网91| 欧美三级电影在线看| 欧美在线日韩精品| 日韩三级小视频| 久久久久高潮毛片免费全部播放| 亚洲欧洲成人av每日更新| 日本久久久久久久久久久| 日韩免费高清一区二区| 美足av综合网| 成人av中文字幕| 欧美激情免费在线| 欧美丰满熟妇bbb久久久| 变态调教一区二区三区| 国产经典欧美精品| 欧美日韩国产二区| av在线免费观看不卡| 在线播放蜜桃麻豆| 国产精品亚洲а∨天堂免在线| 欧美夫妻性生活xx| 日本少妇xxxx| 亚洲综合电影| 国产精品无遮挡| 成人网欧美在线视频| 久草视频中文在线| 国产精品调教视频| 色婷婷av久久久久久久| 亚洲三级一区| 日本黄色一区二区三区| 久久久久国内| 久久精品国产精品亚洲| 99免费观看视频| 经典三级一区二区| 一区二区三区在线看| 精品产品国产在线不卡| 在线观看国产黄| 国产欧美精品| 九九热在线精品视频| 30一40一50老女人毛片| 成人综合日日夜夜| 欧美午夜片欧美片在线观看| 在线观看成人av电影| 天堂中文网在线| 国产福利91精品一区二区三区| 777午夜精品福利在线观看| 国产色无码精品视频国产| 日韩黄色网络| 日韩欧美成人午夜| 99sesese| 午夜精品久久久久久久久久蜜桃| 一区二区三区国产豹纹内裤在线 | 精品一区二区免费视频| 日本精品视频在线| 久久精品欧美一区二区| 欧美一区二区三区久久精品茉莉花 | 亚洲天堂av一区二区三区| 欧美综合社区国产| 欧美日韩高清一区二区三区| 丰满少妇在线观看| 欧美色网在线| 欧美亚洲动漫精品| 91高清国产视频| 自拍偷拍亚洲| 日韩视频一区二区三区| 久久黄色一级视频| 亚洲精品一二三**| 亚洲精品成人久久电影| 日本黄色网址大全| 网曝91综合精品门事件在线| 精品国产欧美成人夜夜嗨| 午夜免费激情视频| 日韩午夜激情| 国产精品久久久久久久9999| 天天干天天插天天射| 精品一区二区三区视频在线观看 | 少妇的滋味中文字幕bd| 成人婷婷网色偷偷亚洲男人的天堂| 日韩中文字幕在线观看| 麻豆亚洲av熟女国产一区二| 久久久精品五月天| 亚洲精品欧美日韩专区| 免费国产黄色片| 91捆绑美女网站| 中文字幕在线中文| 亚洲综合在线电影| 日韩欧美国产一区二区在线播放 | 男的插女的下面视频| 91av亚洲| 欧美精品一区二区三区蜜桃视频 | 91成人国产精品| 亚洲色偷偷色噜噜狠狠99网| 久久精品青草| 2024亚洲男人天堂| 国产精品久久久久久久免费| 国产日产欧美精品一区二区三区| 久久av综合网| 日本免费一区二区三区视频| 亚洲欧美中文日韩在线| 久久国产波多野结衣| 奇米色一区二区| 日韩一区二区三区资源| 五月天国产在线| 欧美精品一区二|