C#
定石3: EF6 + Code First Migrationの最小コード
出典: ASP.NET MVC 5 で使える ORM 3択 — EF6 / Dapper / ADO.NET の業務SE 視点比較 — 定石3: EF6 + Code First Migrationの最小コード
// ✅定石3-b: EF6でControllerからDBアクセス
public class CustomerController : Controller
{
private MyDbContext _db = new MyDbContext();
public ActionResult Index()
{
var customers = _db.Customers
.Where(c => c.Status == "active")
.Include(c => c.Orders)// ← N+1回避のためEager Loading
.Select(c => new CustomerVm { Id = c.Id, Name = c.Name })
.ToList();
return View(customers);
}
protected override void Dispose(bool disposing)
{
if (disposing)_db.Dispose();
base.Dispose(disposing);
}
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「定石3: EF6 + Code First Migrationの最小コード」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
6 件// ✅定石1: ADO.NET最小コード(ControllerのAction内で使う) public class CustomerController : Controller { public ActionResult Index()未収録
定石1: ADO.NETをそのまま使う最小コード
#e9cb6d6ad0b0
// ✅定石2: Dapper最小コード(SQLを書きつつマッピングは自動) using Dapper; public class CustomerController : Controller未収録
定石2: Dapperを導入する最小コード
#986f44b9773c
// ✅定石3-a: DbContextの定義 using System.Data.Entity; public class MyDbContext : DbContext未収録
定石3: EF6 + Code First Migrationの最小コード
#7308bc553108
#初回Migrationを作成 PM> Add-Migration Initial #生成されたMigrationクラスを確認(Migrations/202605120500_Initial.cs)未収録
定石3: EF6 + Code First Migrationの最小コード
#ee07412c4f8d
PM> Update-Database -Verbose #表示例: # Target database: 'MyApp_Dev' (DataSource: 'localhost', ...)未収録
3. Update-Database -Verboseの表示
#2e355dea38a5
# ✅定石4-c:本番にはScriptで安全にMigrationを適用 # 1.ローカルでScriptを生成 PM> Update-Database -Script -SourceMigration:InitialDatabase -TargetMigration:AddCustomerEmail未収録
業務系チームの運用ルール
#dc0f54b73839
