奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

c#查詢關鍵字之join 子句運用方法

時間:2024-07-01 15:18:40 C語言 我要投稿
  • 相關推薦

c#查詢關鍵字之join 子句運用方法

  引導語:c#是第一個面向組件的編程語言,其源碼會編譯成msil再運行。以下是小編整理的c#查詢關鍵字之join 子句運用方法,歡迎參考閱讀!

  使用 join 子句可以將來自不同源序列并且在對象模型中沒有直接關系的元素相關聯。唯一的要求是每個源中的元素需要共享某個可以進行比較以判斷是否相等的值。例如,食品經銷商可能具有某種產品的供應商列表以及買主列表。例如,可以使用 join 子句創建該產品同一指定地區供應商和買主的列表。

  join 子句接受兩個源序列作為輸入。每個序列中的元素都必須是可以與另一個序列中的相應屬性進行比較的屬性,或者包含一個這樣的屬性。join 子句使用特殊的 equals 關鍵字比較指定的鍵是否相等。join 子句執行的所有聯接都是同等聯接。join 子句的輸出形式取決于所執行的聯接的具體類型。以下是三種最常見的聯接類型:

  內部聯接

  下面的示例演示一個簡單的內部同等聯接。此查詢產生一個“產品名稱/類別”對平面序列。同一類別字符串將出現在多個元素中。如果 categories 中的某個元素不具有匹配的 products,則該類別不會出現在結果中。

  C#

  var innerJoinQuery =

  from category in categories

  join prod in products on category.ID equals prod.CategoryID

  select new { ProductName = prod.Name, Category = category.Name }; //produces flat sequence

  分組聯接

  含有 into 表達式的 join 子句稱為分組聯接。

  C#

  var innerGroupJoinQuery =

  from category in categories

  join prod in products on category.ID equals prod.CategoryID into prodGroup

  select new { CategoryName = category.Name, Products = prodGroup };

  分組聯接會產生一個分層的結果序列,該序列將左側源序列中的元素與右側源序列中的一個或多個匹配元素相關聯。分組聯接沒有等效的關系術語;它本質上是一個對象數組序列。

  如果在右側源序列中找不到與左側源中的元素相匹配的元素,則 join 子句會為該項產生一個空數組。因此,分組聯接基本上仍然是一種內部同等聯接,區別只在于分組聯接將結果序列組織為多個組。

  如果您只選擇分組聯接的結果,則可以訪問各個項,但無法識別結果所匹配的鍵。因此,通常更為有用的做法是選擇分組聯接的結果并放入一個也具有該鍵名的新類型中,如上一個示例所示。

  當然,還可以將分組聯接的結果用作其他子查詢的生成器:

  C#

  var innerGroupJoinQuery2 =

  from category in categories

  join prod in products on category.ID equals prod.CategoryID into prodGroup

  from prod2 in prodGroup

  where prod2.UnitPrice > 2.50M

  select prod2;

  左外部聯接

  在左外部聯接中,將返回左側源序列中的所有元素,即使它們在右側序列中沒有匹配的元素也是如此。若要在 LINQ 中執行左外部聯接,請將 DefaultIfEmpty 方法與分組聯接結合起來,以指定要在某個左側元素不具有匹配元素時產生的默認右側元素。可以使用 null 作為任何引用類型的默認值,也可以指定用戶定義的默認類型。下面的示例演示了用戶定義的默認類型:

  C#

  var leftOuterJoinQuery =

  from category in categories

  join prod in products on category.ID equals prod.CategoryID into prodGroup

  from item in prodGroup.DefaultIfEmpty(new Product{Name = String.Empty, CategoryID = 0})

  select new { CatName = category.Name, ProdName = item.Name };

  equals 運算符

  join 子句執行同等聯接。換句話說,只能基于兩個鍵之間的相等關系進行匹配。其他類型的比較(例如,“greater than”或“not equals”)不受支持。為了表明所有聯接都是同等聯接,join 子句使用 equals 關鍵字而不是 == 運算符。equals 關鍵字只能用在 join 子句中,并且它與 == 運算符之間存在一個重要區別。對于 equals,左鍵使用外部源序列,而右鍵使用內部源序列。外部源僅在 equals 的左側位于范圍內,而內部源序列僅在其右側位于范圍內。

  非同等聯接

  通過使用多個 from 子句將新序列單獨引入到查詢中,可以執行非同等聯接、交叉聯接和其他自定義聯接操作。

  對象集合聯接與關系表聯接

  在 LINQ 查詢表達式中,聯接操作是在對象集合上執行的。不能使用與兩個關系表完全相同的方式“聯接”對象集合。在 LINQ 中,僅當兩個源序列沒有通過任何關系相互聯系時,才需要使用顯式 join 子句。使用 LINQ to SQL 時,外鍵表在對象模型中表示為主表的屬性。例如,在 Northwind 數據庫中,Customer 表與 Orders 表之間具有外鍵關系。在將這兩個表映射到對象模型時,Customer 類具有一個 Orders 屬性,該屬性包含與該 Customer 相關聯的 Orders 的集合。實際上,已經為您執行了聯接。

  復合鍵

  使用復合鍵可以測試多個值是否相等。還可以在 group 子句中使用組合鍵。

【c#查詢關鍵字之join 子句運用方法】相關文章:

c#查詢關鍵字之group子句的使用09-07

java基本教程之join方法的詳解06-08

Java編程中this關鍵字與super關鍵字的使用方法08-23

查詢高考成績的方法及往年成績查詢方法10-04

PHP屏蔽關鍵字的方法是什么10-04

PHP自動獲取關鍵字的方法技巧08-11

C#抽象工廠模式的幾種實現方法及比較10-20

C#檢測操作系統版本的方法匯總07-15

java之this關鍵字用法事例解析10-11

C#數據結構之循環鏈表的實例代碼10-22

主站蜘蛛池模板: 尚志市| 加查县| 北流市| 济宁市| 皮山县| 石门县| 鹤庆县| 六盘水市| 大同市| 安吉县| 南陵县| 开封市| 蕲春县| 定陶县| 怀远县| 额济纳旗| 岳池县| 绥宁县| 沈丘县| 怀宁县| 南京市| 内丘县| 兰坪| 错那县| 湘阴县| 柳林县| 罗城| 纳雍县| 方城县| 宜兴市| 怀柔区| 阿坝县| 海阳市| 定边县| 利川市| 澳门| 山阴县| 绿春县| 新安县| 邯郸县| 炉霍县|