記事

Linqとは
 .Net Framework上の「言語に統合されたクエリ」(Language-INtegrated Query)の拡張セットを指すコードネームの名称。

Linq to Objects
IEnumerable<T> ベースの情報ソースにクエリを適用
var al = new [] {
    new {Name="hnaka",ZipCode="553-0001",Prefecture="大阪府"},
    new {Name="hkodama",ZipCode="168-0064",Prefecture="東京都"}
};
var accounts = from a in al
               where a.ZipCode == "168-0064"
               select new { a.Name, a.ZipCode };
foreach (var account in accounts)
{
    Console.WriteLine(account.Name+ "(" + account.ZipCode + ")");
}

Linq to DataSet
従来のADO.NETのDataSetの情報ソースにクエリを適用
DataSet al = new DataSet();
testTableAdapter.Fill(al);
var accounts = from a in al.Account.AsEnumerable()
               where a.ZipCode == "168-0064"
               select new { Name = a.Name, ZipCode = a.ZipCode };
foreach (var account in accounts)
{
    Console.WriteLine(account.Name+ "(" + account.ZipCode + ")");
}

Linq to SQL
SQLサーバーのデータベースの情報ソースにクエリを適用
using (DataClasses1DataContext db = new DataClasses1DataContext
 (Linq1.Properties.Settings.Default.TESTConnectionString))
{
    var accounts = from a in db.Account
                   where a.ZipCode == "168-0064"
                   select a;
foreach (Account account in accounts)
    {
        Console.WriteLine(account.Name + "(" + account.ZipCode + ")");
    }
}

Linq to Entities
Entity Framework を通した概念エンティティの情報ソースにクエリを適用
var accounts = from a in textContext.Account
                   where a.ZipCode == "168-0064"
                   select a;
foreach (Account account in accounts)
{
    Console.WriteLine(account.Name + "(" + account.ZipCode + ")");
}

Linq to XML
XMLのXElementの情報ソースにクエリを適用
var al = new XElement(“Account”, new XAttribute(“CanCode”, true),
new XElement(“Name”, “ hkodama”), new XElement(“ZipCode”, “168-0064”),
new XElement(“Prefecture”, “東京都”));
var accounts = from a in al
  where a.ZipCode == "168-0064"
 select new Account { Name = a.Attribute(“Name”),
  ZipCode = a.Attribute("ZipCode") };
foreach (var account in accounts)
{
    Console.WriteLine(account.Name+ "(" + account.ZipCode + ")");
}

一般に.NetFrameworkでデータとして扱うすべてが対象
 

名称

対象

Linq to Objects

 

IEnumerable<T>

Linq to DataSet

ADO.NETDataSet

Linq to SQL

SQLサーバーのデータベース

Linq to Entities

Entity Framework を通した概念エンティティ

Linq to XML

XMLXElement

ダウンロード
 TitleOwnerCategoryModified DateSize (Kb)