成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > 新Orcas語言特性-查詢句法

新Orcas語言特性-查詢句法

熱門標簽:淮安自動外呼系統(tǒng)開發(fā) 百變地圖標注 語音電話機器人營銷方案 語音電話機器人缺點 廣州市400電話辦理 宜賓外呼系統(tǒng)廠家 地圖標注原件 修改高德地圖標注 南通防封外呼系統(tǒng)運營商

【原文地址】New "Orcas" Language Feature: Query Syntax
【原文發(fā)表日期】 Saturday, April 21, 2007 2:12

上個月我開始了一個貼子系列,討論作為Visual Studio和.NET框架Orcas版本一部分發(fā)布的一些新的VB和C#語言特性。下面是該系列的前三篇貼子的鏈接:

  • 自動屬性,對象初始化器,和集合初始化器
  • 擴展方法
  • Lambda表達式

今天的貼子要討論另一個基礎(chǔ)性的新語言特性:查詢句法(Query Syntax)。

什么是查詢句法(Query Syntax)?

查詢句法是使用標準的LINQ查詢運算符來表達查詢時一個方便的聲明式簡化寫法。該句法能在代碼里表達查詢時增進可讀性和簡潔性,讀起來容易,也容易讓人寫對。Visual Studio 對查詢句法提供了完整的intellisense和編譯時檢查支持。

在底下,C#和VB編譯器則把查詢句法的表達式翻譯成明確的方法調(diào)用代碼,這樣的代碼利用了Orcas中的新的擴展方法和Lambda表達式語言特性。

查詢句法的例子:

在我以前的語言系列貼子里,我示范了你可以象下面這樣聲明一個Person類:

 

然后我們可以使用下面這樣的代碼,用一些個人信息來生成一個ListPerson>集合實例,然后使用查詢句法來對該集合做一個LINQ查詢,只取出那些姓(last name)的首字母為G的人,按名字(first name)來排序(升序):

上面查詢句法的表達式在語意上與下面明確使用LINQ擴展方法和Lambda表達式的代碼是等同的:

使用查詢句法方法的好處是,結(jié)果會是稍微容易讀寫些,這在表達式變得更繁復(fù)時尤其如此。

查詢句法 - 理解from和select子句:

在C#中,每個查詢表達式的句法從from子句開始,以select或group子句結(jié)束。from子句表示你要查詢什么數(shù)據(jù)。select子句則表示你要返回什么數(shù)據(jù),且應(yīng)該以什么構(gòu)形返回。

譬如,讓我們再來看一下我們對ListPerson>集合的查詢:

在上面的代碼片段里,"from p in people"表示了我要對"people" 這個集合做一個LINQ查詢,我將用參數(shù)"p"代表我正查詢的輸入序列的每個項。我們將參數(shù)命名為"p" 這個事實是無關(guān)緊要的,我完全可以很容易地將其命名為"o", "x", "person"或我想要的任何名字。

在上面的代碼片段里,語句結(jié)尾的"select p"子句表示,作為查詢的結(jié)果,我要返回一個Person對象的IEnumerable序列。這是因為"people"集合包含了Person類型的對象,而參數(shù)p則代表了輸入序列中的Person對象。因此,該查詢句法表達式的結(jié)果數(shù)據(jù)類型是IEnumerablePerson>。

假如不是返回Person對象,我想返回該集合中的人的名字,我可以把查詢改寫成這樣:

注意上面我不再說"select p",而是說"select p.FirstName"。這表示我不想返回一串Person對象,而是想返回一串字符串,由Person對象的FirstName屬性(該屬性是個字符串)填充而來。 因此,該查詢句法表達式的結(jié)果類型是 IEnumerablestring>。

針對數(shù)據(jù)庫的查詢句法的例子

LINQ的妙處在于,我可以針對任何數(shù)據(jù)類型使用完全一樣的查詢句法。譬如,我可以使用Orcas提供的新LINQ到SQL對象關(guān)系映射器支持,對SQL服務(wù)器的Northwind數(shù)據(jù)庫進行建模,生成下面這些類(請觀看我這里的錄像來學(xué)習(xí)該如何實現(xiàn)):

在上面定義好類模型之后(以及它與數(shù)據(jù)庫間的映射關(guān)系),然后我就可以寫個查詢句法的表達式取出那些單價大于99元的產(chǎn)品:

在上面的代碼片段里,我表示我要對NorthwindDataContext類的Products表進行一個LINQ查詢,NorthwindDataContext類是由Visual Studio orcas的ORM設(shè)計器生成的。"select p"表示我要返回匹配我的查詢的一串Product對象,因此,該查詢句法表達式的結(jié)果數(shù)據(jù)類型是IEnumerableProduct>。

就象前面ListPerson>查詢句法的例子一樣,C# 編譯器會把我們的聲明式查詢句法翻譯成明確的擴展方法調(diào)用(使用Lambda表達式作為參數(shù))。在上面的LINQ到SQL的例子的情形下,這些Lambda表達式會被轉(zhuǎn)化成SQL命令,然后在SQL服務(wù)器上做運算(這樣,只有那些匹配查詢條件的Product記錄行會返回到我們的應(yīng)用中)。促成這個Lambda->SQL 轉(zhuǎn)化的機制的細節(jié)可見于我的Lambda表達式博客貼子的"Lambda表達式樹"部分。

查詢句法 - 理解where和orderby子句:

在一個查詢句法表達式開頭的"from" 子句和結(jié)尾的"select"子句之間,你可以使用最常見的LINQ查詢運算符來過濾和轉(zhuǎn)換你在查詢的數(shù)據(jù)。兩個最常用的子句是"where"和"orderby"。這兩個子句處理對結(jié)果集的過濾和排序。

譬如,要從Northwind數(shù)據(jù)庫里返回按字母降序排列的分類名稱列表,過濾條件是只包括那些含有5個以上產(chǎn)品的分類,我們可以編寫下面這樣的查詢句法來用LINQ到SQL對我們的數(shù)據(jù)庫做查詢:

在上面的表達式里,我們加了 "where c.Products.Count > 5" 子句來表示我們只要那些含有5個以上產(chǎn)品的分類。這利用了數(shù)據(jù)庫中產(chǎn)品和分類間的LINQ到SQL的ORM映射的關(guān)聯(lián)。在上面的表達式中,我也加了"order by c.CategoryName descending"子句來表示我要將結(jié)果集按名稱降序排列。

LINQ到SQL然后就會在使用這個表達式查詢數(shù)據(jù)庫時,生成下列SQL:

Select [t0].[CategoryName] FROM [dbo].[Categories] AS [t0]
Where ((
    Select COUNT(*)
    FROM [dbo].[Products] AS [t1]
    Where [t1].[CategoryID] = [t0].[CategoryID]
)) > 5
ORDER BY [t0].[CategoryName] DESC

注意,LINQ到SQL很聰明,只返回了我們所需的單個字段(分類名稱), 而且它是在數(shù)據(jù)庫層做了所有的過濾和排序,使得該查詢效率非常高。

查詢句法 - 用投影(Projection)來轉(zhuǎn)換數(shù)據(jù)

先前我指出的一個要點是,"select" 子句表示了你要返回的數(shù)據(jù),以及這個數(shù)據(jù)的構(gòu)形是什么

譬如,假如你有個象下面這樣的"select p" 子句,這里p的類型是Person,然后,它就會返回一串Person對象:

LINQ和查詢句法提供的一個非常強大的功能是允許你定義跟被查詢的數(shù)據(jù)分開的新的類型,然后用新的類型來控制查詢返回的數(shù)據(jù)的形狀和結(jié)構(gòu)。

譬如,假設(shè)我們定義了一個新的AlternatePerson類,內(nèi)含一個FullName屬性,而不是我們原先的Person類內(nèi)的分開的FirstName和LastName屬性:

然后我就可以使用下面的LINQ查詢句法來查詢我原先的ListPerson>集合,用下面的查詢句法將結(jié)果轉(zhuǎn)換成一串AlternatePerson對象:

注意看,我們是如何在上面的表達式里的"select"子句里,使用我的語言系列的第一個貼子里討論過的新的對象初始化器句法來創(chuàng)建新的AlternatePerson實例,同時設(shè)置它的屬性的。也注意我是如何連接我們原先Person類的FirstName和LastName屬性,然后將其賦值給FullName屬性的。

對數(shù)據(jù)庫使用查詢句法投影

這個投影特性在操作從象數(shù)據(jù)庫這樣一個遠程數(shù)據(jù)提供器那里取回的數(shù)據(jù)時,會變得難以置信地有用,因為它提供給我們一個優(yōu)雅的方式,來表示我們的ORM應(yīng)該從數(shù)據(jù)庫實際取回哪些數(shù)據(jù)字段。

譬如,假設(shè)我用了LINQ到SQL的ORM提供器對Northwind數(shù)據(jù)庫建模,生成下面這些類:

通過編寫下面這個LINQ查詢,我告訴LINQ到SQL我要返回一串Product對象:

填充Product類所需的所有字段都將作為上面查詢的一部分從數(shù)據(jù)庫中返回,由LINQ到SQL orM執(zhí)行的raw SQL看上去象下面這樣:

Select [t0].[ProductID], [t0].[ProductName], [t0].[SupplierID], [t0].[CategoryID],
              [t0].[QuantityPerUnit], [t0].[UnitPrice], [t0].[UnitsInStock],
              [t0].[UnitsOnOrder], [t0].[ReorderLevel], [t0].[Discontinued]
FROM [dbo].[Products] AS [t0]
Where [t0].[UnitPrice] > 99

在一些場景下,我不需要也不用所有這些字段,我可以定義一個下面這樣的新的MyProduct類,只擁有Product類具有的部分屬性,以及一個Product類并不具有的額外屬性,TotalRevenue (注: 對那些不熟悉C#的,Decimal?句法表示我們的UnitPrice屬性是個nullable值):

 

然后我就可以使用下面這個查詢,使用查詢句法的投影功能來構(gòu)造我要從數(shù)據(jù)庫返回的數(shù)據(jù)的形狀:

這表明,不是返回一串Product對象,我要MyProduct對象,我只要其中三個屬性被賦值,LINQ到SQL就會很聰明地調(diào)整要執(zhí)行的raw SQL語句,從數(shù)據(jù)庫只返回那三個需要的產(chǎn)品字段:

Select [t0].[ProductID], [t0].[ProductName], [t0].[UnitPrice]
FROM [dbo].[Products] AS [t0]
Where [t0].[UnitPrice] > 99

為炫耀起見,我也可以填充MyProduct類的第四個屬性,即TotalRevenue屬性。我要這個值等于我們產(chǎn)品目前的銷售額的總量。這個值在Northwind數(shù)據(jù)庫中并沒有作為一個預(yù)先算好的字段而存在。而是,你需要在Products表和Order Details表間做一個關(guān)聯(lián),然后計算出一個給定產(chǎn)品對應(yīng)的所有的Order Detail 行的總量。

非常酷的是,我可以在Product類的OrderDetails關(guān)聯(lián)上使用LINQ的 Sum 這個擴展方法,編寫一個作為我的查詢句法投影一部分的乘法Lambda表達式,來計算這個值:

LINQ到SQL就會非常聰明地使用下面這個SQL在SQL數(shù)據(jù)庫里做運算:

Select [t0].[ProductID], [t0].[ProductName], [t0].[UnitPrice], (
        Select SUM([t2].[value])
        FROM (
                 Select [t1].[UnitPrice] * (CONVERT(Decimal(29,4),[t1].[Quantity])) AS [value], [t1].[ProductID]
                 FROM [dbo].[Order Details] AS [t1]
                 ) AS [t2]
        Where [t2].[ProductID] = [t0].[ProductID]
        ) AS [value]
FROM [dbo].[Products] AS [t0]
Where [t0].[UnitPrice] > 99

查詢句法 - 理解延遲執(zhí)行(Deferred Execution)和使用ToList() 和ToArray()

在默認情形下,查詢句法表達式的結(jié)果的類型是IEnumerableT>。在上面的例子里,你會注意到所有的查詢句法賦值是給IEnumerableProduct>, IEnumerablestring>, IEnumerablePerson>, IEnumerableAlternatePerson>, 和 IEnumerableMyProduct> 變量的。

IEnumerableT>接口的一個很好的特征是,實現(xiàn)它們的對象可以把實際的查詢運算延遲到開發(fā)人員第一次試圖對返回值進行迭代(這是通過使用最早在VS 2005中C# 2.0 中引進的yield構(gòu)造來達成的)時才進行。LINQ和查詢句法表達式利用了這個特性,將查詢的實際運算延遲到了你第一次對返回值進行循環(huán)時才進行。假如你對IEnumerableT>的結(jié)果從不進行迭代的話,那么查詢根本就不會執(zhí)行。

譬如,考慮下面這個LINQ到SQL的例子:

不是在查詢句法表達式聲明的時候,而是在我們第一次試圖對結(jié)果進行循環(huán)(上面紅箭頭標志的地方),才會去訪問數(shù)據(jù)庫以及取出填充Category對象所需的值。

這個延遲運算的行為結(jié)果變得非常有用,因為它促成了一些把多個LINQ查詢和表達式鏈在一起的強有力的組合場景。譬如,我們可以把一個表達式的結(jié)果喂給另一個表達式,然后通過延遲運算,允許象LINQ 到SQL這樣的ORM根據(jù)整個表達式樹來優(yōu)化raw SQL。我將在以后的一個博客貼子里對這樣的場景做示范說明。

如何立刻對查詢句法表達式做運算

如果你不要延遲查詢運算,而是要對它們立刻就執(zhí)行運算,你可以使用內(nèi)置的ToList() 和ToArray() 運算符來返回一個包括了結(jié)果集的ListT>或者數(shù)組。

譬如,要返回一個基于范型的 ListT> 集合的話:

要返回一個數(shù)組的話:

在上面兩種情形下,會立刻訪問數(shù)據(jù)庫,填充Category對象。

結(jié)語

查詢句法在使用標準的LINQ查詢運算符來表達查詢時,提供了非常方便的聲明式簡化寫法。它提供的句法可讀性非常高,可以針對任何類型的數(shù)據(jù)(內(nèi)存中的集合,數(shù)組,XML內(nèi)容,以及象數(shù)據(jù)庫這樣的遠程數(shù)據(jù)提供器,web服務(wù)等等)進行查詢。一旦你熟悉這個句法后,你可以在任何地方應(yīng)用這個知識。

在不遠的將來,我將結(jié)束本語言系列的最后一部分,該部分將討論新的匿名類型特性。然后我將轉(zhuǎn)而討論在實際應(yīng)用中使用所有這些語言特性的一些非常實用的例子(特別是針對數(shù)據(jù)庫和XML文件使用LINQ的例子)。

希望本文對你有所幫助,

Scott

標簽:通化 襄陽 嘉峪關(guān) 南平 聊城 南平 股票投資 池州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《新Orcas語言特性-查詢句法》,本文關(guān)鍵詞  新,Orcas,語言,特性,查詢,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《新Orcas語言特性-查詢句法》相關(guān)的同類信息!
  • 本頁收集關(guān)于新Orcas語言特性-查詢句法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    久久久久久国产精品三级玉女聊斋| 色综合天天综合网中文字幕| av免费观看大全| 九九精品在线观看视频| 精品福利在线看| 第一区第二区在线| 4444亚洲人成无码网在线观看| 欧美v国产在线一区二区三区| 日韩欧美亚洲v片| 日韩国产在线播放| 夜夜骑天天操| 女女互磨互喷水高潮les呻吟| 成人直播视频| 国产精品一区二区在线观看网站| 亚洲高清视频网站| 国产精品无码久久久久一区二区| 自拍偷拍亚洲欧美| 理论在线观看| 极品一线天粉嫩虎白馒头| 久久久91精品| 国产在线观看免费视频今夜| 性欧美一区二区三区| 波多野结衣中文一区| 在线观看亚洲a| 欧美日韩二区三区| 欧美另类专区| 四虎永久在线精品无码视频| 亚洲精品中文字幕在线观看| 女生裸体无遮挡天堂网站免费| heyzo一本久久综合| 美女又爽又黄免费动漫| 亚洲视频图片小说| 91精品国产综合久久久久久蜜臀| 黄色片视频在线播放| 欧美一区二粉嫩精品国产一线天| 西西裸体人体做爰大胆久久久| 亚洲人成毛片在线播放女女| 亚洲影视资源| 欧洲精品一区二区三区| 亚洲女同志freevdieo| 人人香蕉久久| 国产精品久一| 亚洲第一福利社区| 日韩欧美综合在线视频| 一本在线高清不卡dvd| 国产精品扒开腿做爽爽爽视频软件| 欧美zozo| av男人的天堂在线观看| 爆乳熟妇一区二区三区霸乳| 色妞色视频一区二区三区四区| 免费一区二区三区视频导航| 91精品影视| 欧美一区在线视频| 日韩欧美在线网址| 一本久久a久久精品vr综合| 国产亚洲精品久久久久久打不开| 裸体在线国模精品偷拍| 久久视频免费看| 亚洲国产成人自拍| 蜜桃av乱码一区二区三区| 欧美一级专区| 国产精品二区影院| 亚洲国内精品| 蜜桃久久精品成人无码av| 国内揄拍国内精品少妇国语| 国产精品亚洲综合一区在线观看| 性刺激的欧美三级视频| 精精国产xxxx视频在线动漫| 国产jzjzjz丝袜老师水多| 久久久久999| 中文字幕在线一区免费| 亚洲色图偷拍视频| 91丨porny丨国产入口| 天天插天天干| 久久午夜免费视频| 成人乱码一区二区三区av| 成人免费视频在线观看超级碰| 亚洲bt欧美bt精品777| 婷婷五月在线视频| 视频在线亚洲| 免费看污视频的网站| 亚洲91网站| 欧美福利在线播放| 1区2区3区国产精品| 国产福利精品视频| 亚洲男女网站| 日本一区二区视频在线播放| 日本熟妇色xxxxx日本免费看| 天堂久久午夜av| 在线视频观看一区| 无码人中文字幕| 中文在线字幕在线观看| 亚洲国产高清自拍| 精品一区二区中文字幕| 高潮毛片又色又爽免费| 黄色在线免费观看网站| se在线视频| 成人午夜免费在线| 亚洲天堂久久久久久久| 亚洲伦理精品| 麻豆changesxxx国产| 99精品一区二区三区的区别| 亚洲区自拍偷拍| 九九在线观看免费视频| 亚洲伦理久久| 在线免费观看毛片| 日韩国产一区| 日韩av色综合| 一级黄色大片免费观看| 在线观看91精品国产麻豆| 久久久久久久久综合影视网| 亚洲第一福利网| 欧洲熟妇精品视频| 91久久偷偷做嫩草影院| 少妇无套高潮一二三区| 久久久久久久久99| 在线精品亚洲欧美日韩国产| 日本高清成人vr专区| 99国产精品久久久久久久成人热| 精精国产xxxx视频在线中文版| 久久久精品一区| 国产成人无码www免费视频播放| ww久久综合久中文字幕| 一区二区三区四区视频在线| 日韩视频在线免费看| 日本1区2区3区中文字幕| 草莓视频末满18勿| 亚洲电影一级片| 综合伊人久久| 91精选在线| 蜜臀精品一区二区三区在线观看| 国产精品一区二区电影| 欧美成人合集magnet| 成人1区2区3区| 麻豆精品密在线观看| 视频一区二区三区在线看免费看| 秋霞福利视频| 激情综合在线观看| 亚洲精品国产一区二区三区四区在线| 精品一区二区三区五区六区七区| 五月天亚洲激情| 成人福利视频网站| 日韩免费中文专区| 日韩avvvv在线播放| 一本久久综合| 国产精品jizz在线观看麻豆| 91精品国产综合久久男男| 色噜噜久久综合| 一级片在线观看免费| 午夜时刻免费入口| 日韩精品一区二区三区久久| 亚洲美女视频在线免费观看| 免费看的黄网站| 久久久精品国产网站| 久久69精品久久久久久国产越南| av成人免费网站| 丰满少妇在线观看资源站| 国产精品亚洲二区在线观看| 在线看片欧美| 国产精品国精产品一二| 精品一二三区视频| 99re6在线视频精品免费| 国内精品卡一卡二卡三新区| www.国产视频| www.国产一区| 国内精品视频| 91精品久久久久久综合五月天| 成人国产精品久久久| 国产裸体美女永久免费无遮挡| 精品免费av一区二区三区| www.五月天色| 久久激情久久| 国产精品成人av在线| 成人免费在线观看av| 亚洲v天堂v手机在线| 天天躁夜夜躁狠狠是什么心态| 中文字幕日韩av电影| 在线观看一区日韩| 成人国产电影在线观看| av在线第一页| 在线看黄色av| 亚洲第一综合| 国产伦精品免费视频| 成年人性生活视频| 国产影视精品一区二区三区| 国产123在线| 国产成人麻豆免费观看| 无码av天堂一区二区三区| jizzjizz日本护士免费| 亚洲女同性videos| 91久久精品国产91性色69| 91精品久久久久久久久不口人| 中文乱码字幕高清一区二区| 国产高清美女一级毛片久久| 污的网站在线观看| 户外露出一区二区三区| 夜夜骚av一区二区三区| 国产欧美婷婷中文| 国产精品免费播放| 欧美性巨大欧美| 国产精品成人久久久| 免播放器亚洲| 成人性生交大片免费看视频在线| 久热精品视频在线| 亚洲天堂黄色片| 91日韩精品视频| 久久久久黄久久免费漫画| 亚洲成av人片在线观看无| 日韩高清免费av| 一本一本久久a久久| 亚洲天堂av一区二区三区| 国产乱码精品一区二三赶尸艳谈| 欧美亚洲国产日韩2020| 美女精品久久久| 午夜丝袜av电影| 国产精品99久久久久久似苏梦涵| 亚洲天堂福利av| 国产精品天天看天天狠| 欧美日本国产视频| 国内精品麻豆美女在线播放视频| 亚洲品质视频自拍网| 亚洲精品字幕在线观看| 先锋影音欧美性受| 久热re国产手机在线观看| 久久久久久久久蜜桃| 激情综合丝袜美女一区二区| 日韩久久久久久久久久| 国内精品久久久久久久果冻传媒| 97免费在线观看视频| 欧美电影在线观看免费| 日本在线小视频| 中文字幕乱码人妻二区三区| 久久久99久久精品女同性| 香蕉久久网站| 欧美日韩性在线观看| 精品婷婷色一区二区三区蜜桃| 91九色porn| 免费日韩电影在线观看| 欧美激情www| 激情久久av一区av二区av三区| 久久免费一级片| 成人在线不卡| 欧美激情视频一区二区三区| 免费毛片b在线观看| 91视频免费看片| 992tv成人免费视频| 亚洲美女屁股眼交| 国产一卡2卡3卡四卡网站| 国产区精品视频在线观看豆花| 日本三级黄色网址| 久久精品日产第一区二区三区| 99久久精品国产麻豆演员表| 成本人h片动漫网站在线观看| 成人精品影院| 欧美大胆的人体xxxx| 亚洲性生活大片| 亚洲第一天堂无码专区| 亚洲一区二区三区免费看| 七七婷婷婷婷精品国产| 久久免费视频这里只有精品| 国产精品夜间视频香蕉| 99久久亚洲精品日本无码| 亚洲欧美日韩国产成人综合一二三区| 一区二区三区亚洲视频| 日韩精品第一区| 98精品视频| 91精品国产高清一区二区三密臀| 色综合久久网女同蕾丝边| 国模无码视频一区| 欧美先锋影音| 国产日本亚洲高清| 亚洲国产aⅴ精品一区二区三区| 精品一区二区中文字幕| 91成人在线观看喷潮蘑菇| 亚洲自拍的二区三区| 成人免费在线电影| 日韩视频在线观看一区二区三区| 国产毛片视频| 久久精品国产久精国产思思| eeuss影院在线观看第一页| 91视频网址免费观看| 成人h动漫精品一区二区| 欧洲精品久久久| 精品一区91| 亚洲男人在线| 午夜精品爽啪视频| 成人免费看片39| 777777国产7777777| 欧美+亚洲+精品+三区| 成人av电影天堂| 亚洲影视九九影院在线观看| 国产精品久久久免费看| 在线观看欧美精品| 91欧美日韩麻豆精品| 欧美gv在线观看| 狠狠色狠狠色综合日日91app| 91九色在线免费视频| 91高清国产| 欧美高清69hd| 久久久一区二区| 91视频在线观看免费| 亚洲精品国产一区二区三区四区在线| 亚洲成人激情小说| 麻豆成人在线播放| 亚洲欧美日韩久久久久久| 日韩不卡视频在线观看| jlzzjizz在线播放观看| av先锋下载| www在线观看播放免费视频日本| 欧美一级久久久| 国产一区二区三区免费| 亚洲成人在线电影| 97国产一区二区精品久久呦| 精品国产91乱高清在线观看| 一区二区理论电影在线观看| 亚洲免费国产| 最新四虎影在线在永久观看www| 天天舔天天操天天干| 欧美性xxxx极品hd欧美| 在线观看免费视频国产| 国产精品爱久久久久久久| 欧美成人一级| 男女av一区三区二区色多| 一区二区三区中文在线| 一本一道久久a久久精品综合蜜臀| 国产精品igao视频| 最新国产在线拍揄自揄视频| 国产精品国三级国产av|