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.NETのDataSet
|
|
Linq to SQL
|
SQLサーバーのデータベース
|
|
Linq to Entities
|
Entity Framework を通した概念エンティティ
|
|
Linq to XML
|
XMLのXElement
|