EntityFramework Code First簡介

Entity Framework 是微軟的ORM solution,ORM是指Object-Relational-Mapping,它是物件和資料庫之間對映的ㄧ種技術,開發人員只需要面對Object物件做CRUD,剩下對後端資料庫如SQL server、Oracle或MySQL的存取程式,ORM會替你處理掉,以節省瑣碎的資料庫存取程式撰寫。

Entity Framework 並非只能用在.net MVC,在Webform架構也可以使用,EF提供了Code First、Database First、Model First三種模式,因為Code First可以實作其他MVC框架中的Migration功能,此模式亦可以在Laravel和ROR中找到。

Code first 顧名思義就是先寫code再讓code去產生DB schema,

會有以下步驟

1. Create a New Project
2. Install Entity Framework
3. Add Model Class
4. Create Context Class
5. Add Scaffolded Item into Controller
6. Insert a Link on Home Page
7. Run your Project

首頁我們必須先使用Nuget來安裝Entity Framework套件,

entityframework

接著我們簡單的建立一個名為Movie的Class在Model資料夾,

並建立對應的Dbcontext,建立之前必須先加入usung System.Data.Entity;movie

並在web.config加入connection stirng

connection

新增一個帶有Entity FrameWork的controller

addcontroller

指定Model的位置

addcontroller2

建立成功後,會自動產生CRUD的action和view,稱為鷹架(scaffolding)的功能,

controllerwithmodel

執行程式之後便可以開始新增資料

create

list

使用code first 模式可以快速地建立CRUD,

使用annotation 替Model加入中文註解,

using Ststem.ComponentModle.DataAnnotations;

欄位名稱可以轉換為中文名稱,

dataannotation

最後可以下指令來建立migration,

在Nuget的命令視窗輸入

enable-migrations
add-migration InitialCreate

可以在migration得到兩個cs檔案,

一個是schema的紀錄,

一個是seed可以協助建立假資料,

跟Laravel提供的功能非常類似,看來都是學ROR的,

schema

最後執行指令更新資料庫:update-database

可以看到DB裡面多了一筆migration的紀錄,

migrationrecord