使用EF DataBaseFirst做一個簡單的MVC3報名網站
ORM(ObjectRelational Mapping)是面嚮對象語言中的一種數據訪問技術,在ASP.NET中,可以通過ADO.NET Entity Framework技術來簡化數據訪問。在EF裏,有Code First,Model First和DataBaseFirst三種方法來實現。
百度百科關於ORM的介紹:
http://baike.baidu.com/view/197951.htm?fr=aladdin
1、就像EF DataBaseFirst名字所表示的意義,我們首先需要把我們需要傳輸數據的數據庫建好,後邊就要通過這個數據庫來生成我們在MVC程序中所需要的實體類。我使用SQL Server 2008建好的一個簡單數據庫如下所示:
2、接下來我們將使用VisualStudio 2010來建一個MVC3 Web應用程序
文件→新建項目→如下圖:
項目建立成功之後如下:
如果不瞭解MVC3的基本思想,可以參考一下微軟官方的一個教程,Music Store
http://musicstore.codeplex.com
3、根據數據庫生成實體數據模型edmx,步驟如下:
點擊確定之後就會在VS的解決資源管理器中看到Models文件夾下多了一個實體數據模型
4、生成了數據實體之後,EF的代碼生成器已經生成了我們所需要的類,但是這些類比較複雜,代碼比較多,我們可以使用一個簡單的模板來生成一些簡單的數據上下文類,如下所示:
首先在空白處點擊右鍵,點擊添加代碼生成項:
(在VS2010中的模板裏沒有這個EF 4.x數據上下文代碼生成器,你可以在聯機模板裏搜索進行安裝,安裝之後以後就都可以用了)
之後會在解決方案資源管理器裏看到多了兩個類,如下:
這兩個類中的代碼如下:
5、接下來我們就來添加控制器和相應的視圖,如下所示:
(在給控制器命名的時候,一定要在最後加上Controller,因爲在MVC中有一個重要的原則就是約定大於配置,遵守這些約定可以讓我們少寫很多代碼,因爲在MVC中約定Home控制器,Index方法是默認的訪問路徑,我們就把新添加的控制器叫做Home,在Home控制器裏添加一個Index方法,之後你還會發現我們從方法中生成的視圖也是和我們的控制器和方法的名字是有關係的,控制器的名字是視圖文件夾Views下的一個子文件夾,而方法對應着一個視圖文件)
(要想用剛纔生成的類,我們首先就要在代碼最前邊加上一個using 那些類的命名空間)
要在前端代碼裏使用那些類,要生成一下程序,按F6或者是
在Index方法裏右鍵添加視圖,添加前端代碼,這些前端代碼可以是純的前端代碼,也可以是使用HtmlHelper來生成,在MusicStore那個教程裏有介紹
在新生成的視圖代碼里加上一個簡單的提交表單,如下:
6、運行程序進行測試
按F5運行程序
在表單中輸入數據後點擊提交,到數據庫裏刷新之後發現新加進來一條數據
上邊的例子裏很多東西都沒有考慮,如果要考慮數據的合法性驗證和權限的限制可以參考微軟音樂商店的那個例子和《精通ASP.NET MVC3框架》這本書
下邊的這兩個鏈接講的也很詳細,也可以參考一下這兩個例子
參考自: