Hello, LINQ World!
Posted on 4月 8th, 2012 by cx20
LINQ
LINQ(Language Integrated Query : 統合言語クエリ)は、.NET 言語から DBMS や XML にアクセスする為の汎用クエリ機能である。
LINQ プロバイダとして、以下のようなものがある。
LINQ プロバイダ |
説明 |
LINQ to SQL |
SQL Server |
LINQ to XML |
XML ドキュメント |
LINQ to Dataset |
ADO.NET データセット |
LINQ to Objects |
.NET コレクション、ファイル、文字列など |
ソースコード(C# + LINQ to Objects)
using System;
using System.Linq;
using System.Collections.Generic;
class Record
{
public string Message;
public Record(string message)
{
this.Message = message;
}
}
class Hello
{
static void Main(string[] args)
{
Record[] records = new Record[]
{
new Record("Hello, LINQ World!")
};
IEnumerable<Record> query =
from n in records
select n;
foreach (Record r in query)
{
Console.WriteLine(r.Message);
}
}
} |
using System;
using System.Linq;
using System.Collections.Generic;
class Record
{
public string Message;
public Record(string message)
{
this.Message = message;
}
}
class Hello
{
static void Main(string[] args)
{
Record[] records = new Record[]
{
new Record("Hello, LINQ World!")
};
IEnumerable<Record> query =
from n in records
select n;
foreach (Record r in query)
{
Console.WriteLine(r.Message);
}
}
}
ソースコード(C# + LINQ to SQL)
/**
-- <事前準備>
-- 1. テーブル作成
CREATE TABLE HELLO
(
ID INT NOT NULL,
MESSAGE VARCHAR(50) NULL,
PRIMARY KEY (ID)
);
-- 2. データ投入
INSERT HELLO ( ID, MESSAGE ) VALUES ( 1, 'Hello, LINQ World' );
-- 3. データ表示
SELECT * FROM HELLO;
-- ------------------
ID MESSAGE
-- ------------------
1 Hello, LINQ World!
-- ------------------
*/
using System;
using System.Linq;
using System.Data.Linq;
using System.Data.Linq.Mapping;
public class HelloDataContext : DataContext
{
public HelloDataContext(string connectionString) : base(connectionString) { }
public Table<HelloTable> Hello;
}
[Table(Name = "Hello")]
public class HelloTable
{
[Column(IsPrimaryKey = true)]
public int Id;
[Column]
public string Message;
}
class Hello
{
static void Main(string[] args)
{
string conStr = "SERVER=(local);"
+ "DATABASE=Hello;"
+ "UID=sa;"
+ "PWD=P@ssW0rd";
var db = new HelloDataContext( conStr );
var q =
from h in db.Hello
select h;
foreach (var h in q)
{
Console.WriteLine(h.Message);
}
}
} |
/**
-- <事前準備>
-- 1. テーブル作成
CREATE TABLE HELLO
(
ID INT NOT NULL,
MESSAGE VARCHAR(50) NULL,
PRIMARY KEY (ID)
);
-- 2. データ投入
INSERT HELLO ( ID, MESSAGE ) VALUES ( 1, 'Hello, LINQ World' );
-- 3. データ表示
SELECT * FROM HELLO;
-- ------------------
ID MESSAGE
-- ------------------
1 Hello, LINQ World!
-- ------------------
*/
using System;
using System.Linq;
using System.Data.Linq;
using System.Data.Linq.Mapping;
public class HelloDataContext : DataContext
{
public HelloDataContext(string connectionString) : base(connectionString) { }
public Table<HelloTable> Hello;
}
[Table(Name = "Hello")]
public class HelloTable
{
[Column(IsPrimaryKey = true)]
public int Id;
[Column]
public string Message;
}
class Hello
{
static void Main(string[] args)
{
string conStr = "SERVER=(local);"
+ "DATABASE=Hello;"
+ "UID=sa;"
+ "PWD=P@ssW0rd";
var db = new HelloDataContext( conStr );
var q =
from h in db.Hello
select h;
foreach (var h in q)
{
Console.WriteLine(h.Message);
}
}
}
ソースコード(VB.NET + LINQ to SQL)
''' -- <事前準備>
''' -- 1. テーブル作成
''' CREATE TABLE HELLO
''' (
''' ID INT NOT NULL,
''' MESSAGE VARCHAR(50) NULL,
''' PRIMARY KEY (ID)
''' );
''' -- 2. データ投入
''' INSERT HELLO ( ID, MESSAGE ) VALUES ( 1, 'Hello, LINQ World' );
''' -- 3. データ表示
''' SELECT * FROM HELLO;
''' -- ------------------
''' ID MESSAGE
''' -- ------------------
''' 1 Hello, LINQ World!
''' -- ------------------
Imports System
Imports System.Linq
Imports System.Data.Linq
Imports System.Data.Linq.Mapping
Public Class HelloDataContext
Inherits DataContext
Public Sub New( ByVal connectionString As String )
MyBase.New(connectionString)
End Sub
Public Hello As Table( Of HelloTable )
End Class
<Table(Name := "Hello")> _
Public Class HelloTable
<Column(IsPrimaryKey := True)> _
Public Id As Integer
<Column()> _
Public Message As String
End Class
Class Hello
Shared Sub Main()
Dim conStr As String = "SERVER=(local);" _
& "DATABASE=Hello;" _
& "UID=sa;" _
& "PWD=P@ssW0rd"
Dim db = New HelloDataContext( conStr )
Dim q =
from h In db.Hello
Select h
For Each h In q
Console.WriteLine(h.Message)
Next
End Sub
End Class |
''' -- <事前準備>
''' -- 1. テーブル作成
''' CREATE TABLE HELLO
''' (
''' ID INT NOT NULL,
''' MESSAGE VARCHAR(50) NULL,
''' PRIMARY KEY (ID)
''' );
''' -- 2. データ投入
''' INSERT HELLO ( ID, MESSAGE ) VALUES ( 1, 'Hello, LINQ World' );
''' -- 3. データ表示
''' SELECT * FROM HELLO;
''' -- ------------------
''' ID MESSAGE
''' -- ------------------
''' 1 Hello, LINQ World!
''' -- ------------------
Imports System
Imports System.Linq
Imports System.Data.Linq
Imports System.Data.Linq.Mapping
Public Class HelloDataContext
Inherits DataContext
Public Sub New( ByVal connectionString As String )
MyBase.New(connectionString)
End Sub
Public Hello As Table( Of HelloTable )
End Class
<Table(Name := "Hello")> _
Public Class HelloTable
<Column(IsPrimaryKey := True)> _
Public Id As Integer
<Column()> _
Public Message As String
End Class
Class Hello
Shared Sub Main()
Dim conStr As String = "SERVER=(local);" _
& "DATABASE=Hello;" _
& "UID=sa;" _
& "PWD=P@ssW0rd"
Dim db = New HelloDataContext( conStr )
Dim q =
from h In db.Hello
Select h
For Each h In q
Console.WriteLine(h.Message)
Next
End Sub
End Class
コンパイル方法(C# + LINQ to Objects)
コンパイル方法(C# + LINQ to SQL)
コンパイル方法(VB.NET + LINQ to SQL)
実行結果
Tags: LINQ
Categories: .NET, library, LINQ