クライアントインターフェイスガイド > TDV用TIBCO ADO .NET 2020データプロバイダー > ADO.NET (LINQ)の使用 > LINQクエリ
 
LINQクエリ
以下は、プロバイダーによってサポートされているLINQクエリの例です。
選択してフィルタリング
次のクエリは、ProductName列の値が「昆布」であるレコードを検索します。
 
var query = from Products in context.Products
where Products.ProductName == "Konbu"
select Products;
含まれています
文字列内の文字列を検索することもできます。次の例では、ProductName列に「B」を含む値を持つすべてのProductsエンティティを取得します。
 
var query = from Products in context.Products
where Products.ProductName.Contains("B")
select Products;
制限
次の例では、返される結果を10に制限しています。
 
var query = (from Products in context.Products
orderby Products.ProductName descending,
Products.ProductName ascending
select Products).Take(10);
注文者
次の例では、複数列の並べ替えを実行します。結果は、Idで昇順(デフォルト)で並べ替えられ、次にProductNameで降順で並べ替えられます。
 
var query = from Products in context.Products;
orderby Products.Id,
Products.ProductName descending
select Products;
カウント
次の例では、特定の基準に一致するすべてのエンティティをカウントします。
 
int count = (from Products in context.Products
where Products.ProductName == "Konbu"
select Products).Count();
グループ化して要約する
次の例では、group句で定義されたキーであるProductNameでグループ化されたエンティティのコレクションの最小価格を計算します。
 
var query = from Products in context.Products
group Products by new { Products.ProductName }
into g
orderby g.Key
select new {
ProductName = g.Key.ProductName,
MinPrice = g.Min(x => x.Price)
};
参加する
以下は、内部結合の例です。次のクエリは、連絡先を持つすべてのアカウントの名前とそれらの連絡先の名前を返します。
 
var AccountsQuery = from accounts in context.Accounts
join contacts in context.Contacts on accounts.Id equals contacts.AccountId
select new
{
AccountName = accounts.Name,
ContactName = contacts.Name
};
以下は、左外部結合の例です。クエリは、関連する連絡先の名前とともに、すべてのアカウントの名前を返します。
var AccountsQuery = from accounts in context.Accounts
join contacts in context.Contacts on accounts.Id equals contacts.AccountId into Inners
from od in Inners.DefaultIfEmpty()
select new
{
AccountName = accounts.Name,
ContactName = od.ContactName
};
以下は、クロス結合の例です。クエリは、Employeesテーブルのすべての行をsales territoriesテーブルのすべての行と組み合わせてから、FirstName、LastName、およびTerritoryDescription列をこれらの行に投影します。
var infoQuery =
from emp in context.Employees
from empterr in context.EmployeeTerritories
select new
{
emp.FirstName,
emp.LastName,
empterr.TerritoryDescription
};