このトピックの例では、 ToArray、 ToDictionary 、および ToList メソッドを使用して、メソッド ベースのクエリ構文を使用して AdventureWorks Sales Model にクエリを実行する方法を示します。 これらの例で使用される AdventureWorks Sales Model は、AdventureWorks サンプル データベースの Contact、Address、Product、SalesOrderHeader、および SalesOrderDetail テーブルから構築されています。
このトピックの例では、次の using
/Imports
ステートメントを使用します。
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using System.Globalization;
using System.Data.EntityClient;
using System.Data.SqlClient;
using System.Data.Common;
Option Explicit On
Option Strict On
Imports System.Data.Objects
Imports System.Globalization
ToArray
例
次の例では、 ToArray メソッドを使用して、シーケンスを配列に直ちに評価します。
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<Product> products = context.Products;
Product[] prodArray = (
from product in products
orderby product.ListPrice descending
select product).ToArray();
Console.WriteLine("Every price from highest to lowest:");
foreach (Product product in prodArray)
{
Console.WriteLine(product.ListPrice);
}
}
Using context As New AdventureWorksEntities
Dim products As ObjectSet(Of Product) = context.Products
Dim prodArray As Product() = ( _
From product In products _
Order By product.ListPrice Descending _
Select product).ToArray()
Console.WriteLine("The list price from highest to lowest:")
For Each prod As Product In prodArray
Console.WriteLine(prod.ListPrice)
Next
End Using
ToDictionary
例
次の例では、 ToDictionary メソッドを使用して、シーケンスと関連するキー式をすぐにディクショナリに評価します。
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<Product> products = context.Products;
Dictionary<String, Product> scoreRecordsDict = products.
ToDictionary(record => record.Name);
Console.WriteLine($"Top Tube's ProductID: {scoreRecordsDict["Top Tube"].ProductID}");
}
Using context As New AdventureWorksEntities
Dim products As ObjectSet(Of Product) = context.Products
Dim scoreRecordsDict As Dictionary(Of String, Product) = _
products.ToDictionary(Function(record) record.Name)
Console.WriteLine("Top Tube's ProductID: {0}", _
scoreRecordsDict("Top Tube").ProductID)
End Using
ToList
例
次の例では、 ToList メソッドを使用して、シーケンスを直ちに List<T>に評価します。ここで、 T
は DataRow型です。
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
ObjectSet<Product> products = context.Products;
List<Product> query =
(from product in products
orderby product.Name
select product).ToList();
Console.WriteLine("The product list, ordered by product name:");
foreach (Product product in query)
{
Console.WriteLine(product.Name.ToLower(CultureInfo.InvariantCulture));
}
}
Using context As New AdventureWorksEntities
Dim products As ObjectSet(Of Product) = context.Products
Dim prodList As List(Of Product) = ( _
From product In products _
Order By product.Name _
Select product).ToList()
Console.WriteLine("The product list, ordered by product name:")
For Each prod As Product In prodList
Console.WriteLine(prod.Name.ToLower(CultureInfo.InvariantCulture))
Next
End Using
こちらも参照ください
- LINQ to Entities におけるクエリ