陳進
摘要Entit y Framework是.NET開發(fā)中一種由ADO.NET驅(qū)動的ORM框架,此框架支持三種編程方式Database First、Model First和Code First,本文以項目管理系統(tǒng)中類別管理為例,簡單描述了Code First模式在MVC項目中的應(yīng)用方法。
【關(guān)鍵詞】Entity Framework CodeFirst MVC實體框架 代碼優(yōu)先
1 Entity Framework概述
ADO.NET Entity Framework是NET開發(fā)中一種由ADO.NET驅(qū)動的ORM框架,使用Entity Framework(以下簡稱EF)開發(fā)人員可以不必考慮數(shù)據(jù)的基礎(chǔ)數(shù)據(jù)表和列,在處理數(shù)據(jù)時能夠以更高的抽象級別進行工作,并能夠以相對傳統(tǒng)開發(fā)編寫更少的代碼來創(chuàng)建和維護應(yīng)用程序。
2 CodeFirst模式在MVC項目中的應(yīng)用
2.1 新建一個MVC項目
打開VS2015, 新建項目名稱為ProjectManage的MVC項目,項目創(chuàng)建完成后,在解決方案中會自動生成Models[模型]、Views[視圖]和Controllers[控制器]三個文件夾。
2.2 創(chuàng)建項目類別模型
在Models文件夾中添加一個Category類,這個類描述的是項目類別,包含了兩個屬性:類別編碼、類別名稱。
public class Category
{
publicintld{ get; set;)
public string CateName{ get; set;)
)
2.3 啟用CodeFirst數(shù)據(jù)遷移
在數(shù)據(jù)遷移之前,需要在Web.config中預(yù)先定義DB連接,在connectionString節(jié)點中,增加名稱為ProjectDbContext的連接字符串。
2.4 定義數(shù)據(jù)庫上下文DBContext類
在Models文件夾中, 新建ProjectDBContext類, 該 類 繼 承 至DBContext。
public class ProjectDbContext: DbContext
publicProjectDbContext() :base(”ProjectDbContext”){)
)
2.5 安裝EF框架
CodeFirst模式是基于EF實現(xiàn)的,所以在使用之前,需要安裝EF。首先打開NuGet程序包管理器,在搜索框里面搜索EntityFramework,找到后把EF安裝到解決方案中。
2.6 實現(xiàn)數(shù)據(jù)遷移
CodeFirst模式可以根據(jù)模型,自動生成數(shù)據(jù)庫和數(shù)據(jù)表,生成操作需要執(zhí)行以下命令Enable-Migrations、Add-Migration、Update-Database。具體步驟如下:
(1)打開“程序包管理控制臺”,執(zhí)行數(shù)據(jù)遷移命令,在命令行中輸入“Enable-Migrations”,該命令的作用是允許數(shù)據(jù)遷移,執(zhí)行該命令后,會在項目解決方案中新增加一個Migrations文件夾,該文件夾里面放的是所有的遷移記錄,該指令在項目開發(fā)過程中只需執(zhí)行一次,后續(xù)數(shù)據(jù)庫表更新無需重復(fù)執(zhí)行。
(2)在命令行中輸入“Add-MigrationInitialDB”,執(zhí)行該命令后,會在Migrations文件夾中新增一條遷移記錄。
(3)最后在命令行中輸入“Update-Database”,執(zhí)行完畢后,就會在數(shù)據(jù)庫中生成了名稱為ProjectDb的數(shù)據(jù)庫,在數(shù)據(jù)庫里面會有一張Categories數(shù)據(jù)表。
2.7 使用基架生成Controller和Views
當(dāng)數(shù)據(jù)庫生成完畢之后,可以根據(jù)基架直接生成Controller和Views,很方便的就實現(xiàn)了對數(shù)據(jù)表Categories的列表、新增、刪除和修改功能。
(1)在Controllers文件夾中新建控制器CategoryController,選擇包含視圖MVC5控制器(使用EF),選擇完畢后然后點擊添加,打開如圖1所示界面。
(2)根據(jù)圖1所示,輸入控制器名稱CategoryController、選擇模型類(Category)、上下文(ProjectDbContext)、選中生成視圖然后點擊添加按鈕,完成控制器的添加。
(3)控制器添加完成后,會在Views文件夾內(nèi)同步生成項目類別的視圖頁,此時可以選擇Index在瀏覽器中查看效果。
至此,一個簡單的基于CodeFirst模式的MVC項目已經(jīng)編寫完畢,在整個過程中,其實書寫的代碼并沒有多少,但是完成了對一張數(shù)據(jù)表的維護操作,讓復(fù)雜的編程變得更簡單快速。但是,要完全掌握這種模式下的編程開發(fā),還有很多東西需要學(xué)習(xí),例如表與表之前的關(guān)系如何在模型中體現(xiàn)、數(shù)據(jù)校驗如何完成等等,更多細(xì)節(jié)方面還需要大家查詢相關(guān)資料深入學(xué)習(xí),方能有所收獲。
參考文獻
[1]劉育旺.基于.NET MVC框架的Web設(shè)計[J].電子技術(shù)與軟件工程,2017(01):48- 49