OracleのEntityFrameworkは難易度が高いので、SQL Serverから始める。
まず、こちらからSQL Server 2014 Expressをダウンロードする。ExpressAndTools XXBIT\SQLEXPRWT_xYY_JPN.exe
が、DBサーバーと管理ツール(Management Studio)の両方がついてくるのでおススメ。ダウンロード後に解凍してインストール。インストール時はひたすら【次へ】ボタンを押す。インストールが終わればManagement Studioを開き、SQL Serverに接続できることを確認する。確認が終わればVisual Studioでプロジェクトを作成する(Management Studioは開いたまま)。作成後、NuGetでEntityFrameworkをインストールする。そして、下記3つのクラスを作成・修正する。
EncodingInfo.cs
class EncodingInfo
{
public int Id { get; set; }
public int CodePage { get; set; }
public string Name { get; set; }
public string DisplayName { get; set; }
}
MyContext.cs
using System.Data.Entity;
class MyContext : DbContext
{
public DbSet<EncodingInfo> EncodingInfos { get; set; }
}
Program.cs
class Program
{
static void Main(string[] args)
{
using (var context = new MyContext())
{
context.EncodingInfos.Add(new EncodingInfo()
{
CodePage = 932,
Name = "shift_jis",
DisplayName = "Japanese (Shift-JIS)"
});
context.EncodingInfos.Add(new EncodingInfo()
{
CodePage = 20932,
Name = "EUC-JP",
DisplayName = "Japanese (JIS 0208-1990 and 0212-1990)"
});
context.EncodingInfos.Add(new EncodingInfo()
{
CodePage = 65001,
Name = "utf-8",
DisplayName = "Unicode (UTF-8)"
});
context.SaveChanges();
}
}
}
3つのクラスを作成し終えたら実行。処理終了後にManagement Studioでデータベース一覧を見ると、MyContext
という名前のデータベースが作成され、テーブル一覧にdbo.EncodingInfos
がある。SELECT文を発行すると、3レコードが追加されていることもわかる。
Program.csのMain
メソッドの中身を次のように書き換える。
Program.cs
using (var context = new MyContext())
{
foreach (var info in context.EncodingInfos)
{
System.Console.WriteLine(info.DisplayName);
}
}
実行すると、先ほど追加した3レコードのDisplayName
プロパティが標準出力に出力される。
- SQL Serverの場合、App.configを一切触る必要がない。
- 行を表すクラス(
EncodingInfo
クラス)にはIdプロパティが必要。Idカラムが主キーになる。