【原】ASP.Net MVC極速開發:使用MVCScaffolding + EntityFramework CodeFirst


【名詞解釋】

1、MVCScaffolding:

MVC腳手架,帶來類似Ruby On Rails一樣創建代碼結構的快感。

2、EF CodeFirst:

CodeFirst是EntityFramework的一種技術手段。

傳統編程方式都是先建立數據庫,然后根據數據庫模型為應用程序建模,再進行開發;

CodeFirst從字面上理解就是代碼先行,先在程序中建立要映射到數據庫的實體結構,然后EntityFramework根據實體結構生成所對應的數據庫。

【環境准備】

1、ASP.Net MVC 3及以上版本

2、安裝Nuget

【Step By Step】

1、使用VS創建一個MVC項目,比如iFlytekDemo

2、選擇空模板

3、此時代碼結構如下:

4、選擇Tools菜單中的”Library Package Manager”的”Package Manager Console”,即打開Nuget命令窗口:

5、Package Manager Console命令窗口如下所示:

6、在PM>提示符后輸入:

Install-Package MvcScaffolding

即安裝MvcScaffolding包

7、安裝后,packages文件夾下發現多出了MvcScaffolding.1.0.9、T4Scaffolding.1.0.8、T4Scaffolding.Core.1.0.0三個文件夾

8、選擇Tools菜單中的”Library Package Manager”的”Manage NuGet Packages for Solution…”:

9、在右上方的搜索欄里輸入”sql server”,方便的找到EntityFramework.SqlServerCompact,注意看它的說明:允許SQL Server Compact 4.0被EntityFramework使用,點擊Install安裝:

10、提示是否安裝到工程中,顯然點”OK”:

11、問是否接受通行證,必須點”I Accept”:

12、安裝完畢后,發現這3個都打上了小綠勾,packages文件夾下發現多出了SqlServerCompact.4.0.8854.1文件夾:

13、此時,項目的文件結構變成了下圖所示:

14、添加ASP.Net文件夾”App_Data”,用來存放數據庫文件,這一步常常有人忘記,不做的話,后續會出錯哦,親:

15、搭架子的工作搞一段落

16、創建兩個實體類City.cs和Employee.cs

17、顯然這里開始使用CodeFirst了,那么各種DataAnnotations標簽用起來咯:

[Key]表示主鍵

[Required]表示必須項

注意命名空間System.ComponentModel.DataAnnotations的引入哦

 1 using System.Collections.Generic;
 2 using System.ComponentModel.DataAnnotations;
 3 
 4 namespace iFlytekDemo.Models
 5 {
 6     /// <summary>
 7     /// 城市實體
 8     /// </summary>
 9     public class City
10     {
11         /// <summary>
12         /// 城市編號
13         /// </summary>
14         [Key]
15         public int CityID { get; set; }
16 
17         /// <summary>
18         /// 城市名稱
19         /// </summary>
20         [Required]
21         public string CityName { get; set; }
22 
23         /// <summary>
24         /// 員工集合
25         /// </summary>
26         public virtual ICollection<Employee> Employees { get; set; }
27     }
28 }
 1 using System.ComponentModel.DataAnnotations;
 2 
 3 namespace iFlytekDemo.Models
 4 {
 5     /// <summary>
 6     /// 員工實體
 7     /// </summary>
 8     public class Employee
 9     {
10         /// <summary>
11         /// 員工編號
12         /// </summary>
13         [Key]
14         public int EmployeeID { get; set; }
15         
16         /// <summary>
17         /// 員工姓名
18         /// </summary>
19         [Required]
20         public string EmployeeName { get; set; }
21 
22         /// <summary>
23         /// 城市編號
24         /// </summary>
25         [Required]
26         public int CityID { get; set; }
27 
28         /// <summary>
29         /// 城市對象
30         /// </summary>
31         public virtual City City { get; set; }
32     }
33 }

18、開始使用腳手架生成咯,我們選擇生成包括Repository文件,這樣就可以華麗麗的show一下倉儲模式,輸入:

Scaffold Controller City -Repository

Scaffold Controller Employee -Repository

19、這樣工程的代碼就算基本完畢了,生成完后的結構如下:

20、需要注意的是:比如新增員工時,要選擇城市,代碼從

“Text = Html.DisplayTextFor(_ => option).ToString(),”改為

“Text = Html.DisplayTextFor(_ => option.CityName).ToString(), ”即可,類似的地方一樣加一下就能正常顯示城市名稱。

21、為了顯示的方便,做一個入口吧,新建一個HomeController

22、對應的View文件夾中Home文件夾的Index.cshtml里加兩句

23、為了好看一點,Content文件夾下的Site.css再加幾句話

 1 /* Styles for component in forms
 2 -----------------------------------------------------------*/
 3 table
 4 {
 5     border-collapse:collapse;
 6     border-spacing:0;
 7     border-left:1px solid #888;
 8     border-top:1px solid #888;
 9     background:#efefef;
10 }
11 
12 th,td
13 {
14     border-right:1px solid #888;
15     border-bottom:1px solid #888;
16     padding:5px 15px;
17 }
18 
19 th
20 {
21     font-weight:bold;
22     background:#ccc;
23 }
24 
25 td
26 {
27     text-align: center;    
28 }

24、運行一下,效果出來了:

首頁入口:

新增城市:

城市列表:

新增員工:

員工列表:

編輯員工:

添加完員工后的城市列表,有員工人數統計

總結:統計一下,核心語句加起來都沒超過10句,就實現了一個一對多關系的MVC示例。

動心了沒?

趕快動手吧,如果您在使用過程中有好的經驗,也別忘了告訴我哦。

-----------------------------------------------------------------------------------------------------------------

附:代碼下載地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM