
七天學(xué)會ASP.NET MVC (一)——深入理解ASP.NET MVC
七天學(xué)會ASP.NET MVC (二)——ASP.NET MVC 數(shù)據(jù)傳遞
七天學(xué)會ASP.NET MVC (三)——ASP.Net MVC 數(shù)據(jù)處理
七天學(xué)會ASP.NET MVC (四)——用戶授權(quán)認(rèn)證問題
七天學(xué)會ASP.NET MVC (五)——Layout頁面使用和用戶角色管理
七天學(xué)會ASP.NET MVC (六)——線程問題、異常處理、自定義URL
數(shù)據(jù)訪問層
實(shí)體框架(EF)簡述
什么是代碼優(yōu)先的方法?
實(shí)驗(yàn)8——在項(xiàng)目中添加數(shù)據(jù)訪問層
關(guān)于實(shí)驗(yàn)8
實(shí)驗(yàn)9——創(chuàng)建數(shù)據(jù)輸入屏幕
實(shí)驗(yàn)10——獲取服務(wù)端或控制器端傳遞的數(shù)據(jù)。
實(shí)驗(yàn)11——重置及取消按鈕
實(shí)驗(yàn)12——保存數(shù)據(jù)。庫記錄并更新表格
實(shí)驗(yàn)13——添加服務(wù)器端驗(yàn)證
實(shí)驗(yàn)14——自定義服務(wù)器端驗(yàn)證
結(jié)論
在實(shí)際開發(fā)中,如果一個項(xiàng)目不包含任何數(shù)據(jù)庫,那么這個項(xiàng)目是不完整的,我們在一二節(jié)實(shí)例中未涉及數(shù)據(jù)庫,在本節(jié)開始,實(shí)驗(yàn)8中講解一個關(guān)于數(shù)據(jù)庫和數(shù)據(jù)庫層的實(shí)例。
本節(jié)將使用SQL Server和EF(Entity Framework)創(chuàng)建相關(guān)的數(shù)據(jù)庫及數(shù)據(jù)庫訪問層。
EF是一種ORM工具,ORM表示對象關(guān)聯(lián)映射。
在RDMS中,對象稱為表格和列對象,而在.net中(面向?qū)ο螅┓Q為類,對象以及屬性。
任何數(shù)據(jù)驅(qū)動的應(yīng)用實(shí)現(xiàn)的方式有兩種:
1. 通過代碼與數(shù)據(jù)庫關(guān)聯(lián)(稱為數(shù)據(jù)訪問層或數(shù)據(jù)邏輯層)
2. 通過編寫代碼將數(shù)據(jù)庫數(shù)據(jù)映射到面向?qū)ο髷?shù)據(jù),或反向操作。
ORM是一種能夠自動完成這兩種方式的工具。EF是微軟的ORM工具。
EF提供了三種方式來實(shí)現(xiàn)項(xiàng)目:
l 數(shù)據(jù)庫優(yōu)先方法——創(chuàng)建數(shù)據(jù)庫,包含表,列以及表之間的關(guān)系等,EF會根據(jù)數(shù)據(jù)庫生成相應(yīng)的Model類(業(yè)務(wù)實(shí)體)及數(shù)據(jù)訪問層代碼。
l 模型優(yōu)先方法——模型優(yōu)先指模型類及模型之間的關(guān)系是由Model設(shè)計人員在VS中手動生成和設(shè)計的,EF將模型生成數(shù)據(jù)訪問層和數(shù)據(jù)庫。
l 代碼優(yōu)先方法——代碼優(yōu)先指手動創(chuàng)建POCO類。這些類之間的關(guān)系使用代碼定義。當(dāng)應(yīng)用程序首次執(zhí)行時,EF將在數(shù)據(jù)庫服務(wù)器中自動生成數(shù)據(jù)訪問層以及相應(yīng)的數(shù)據(jù)庫。
POCO即Plain Old CLR對象,POCO類就是已經(jīng)創(chuàng)建的簡單.Net類。在上兩節(jié)的實(shí)例中,Employee類就是一個簡單的POCO類。
1. 創(chuàng)建數(shù)據(jù)庫
連接SQL SERVER ,創(chuàng)建數(shù)據(jù)庫 “SalesERPDB”。

2. 創(chuàng)建連接字符串(ConnectionString)
打開Web.Config 文件,在< Configuration >標(biāo)簽內(nèi)添加以下代碼:
1: <connectionStrings>
2: <add connectionString="Data Source=(local);Initial Catalog=SalesERPDB;Integrated Security=True"
3: name="SalesERPDAL"
4:5: </connectionStrings>3. 添加EF引用
右擊項(xiàng)目->管理Nuget 包。選擇Entity Framework 并點(diǎn)擊安裝。
4. 創(chuàng)建數(shù)據(jù)訪問層
Layer“,并在Data Access Layer文件夾中新建類” SalesERPDAL “
- 在根目錄下,新建文件夾”Data access
1: public class SalesERPDAL: DbContext
2: {3: }
5. 創(chuàng)建Employee類的主鍵
打開Employee類,輸入using語句
1: using System.ComponentModel.DataAnnotations;
添加Employee的屬性,并使用Key 關(guān)鍵字標(biāo)識主鍵。
public class Employee{ [Key] public int EmployeeId { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public int Salary { get; set; }}6. 定義映射關(guān)系
在SalesERPDAL類文件輸入using語句。
1: using Webapplication1.Models;
在 SalesERPDAL 類中重寫 OnModelCreating方法,代碼如下:
1: protected override void OnModelCreating(DbModelBuilder modelBuilder)
2: { 3: modelBuilder.Entity<employee>().ToTable("TblEmployee");4: base.OnModelCreating(modelBuilder);
5: }
6: </employee>
注意:上述代碼中提到“TblEmployee”是表名稱,是運(yùn)行時自動生成的。
7. 在數(shù)據(jù)庫中添加新屬性Employee
在 SalesERPDAL 類中添加新屬性 Employee。
1: public DbSet<employee> Employees{get;set;}2: </employee>