Microsoft EF 的簡單應用

2022-05-10 15:49:13 字數 3425 閱讀 6443

ef支援三種構建方法,分別為:code first模式,database first模式和model first模式,下面通過**簡單的介紹這三張方法的使用

一 code first 模式.顧名思義就是**先行

1 新建乙個控制台程式(這個不多說),並新新增entities和dbcontext資料夾,分別存放模型和資料庫上下文類,通過nuget新增entity framework包

2 新建user類和order類 如下

public class user

public string name

public datetime birthday

public listorders

}public class order

public system.datetime ordertime

public string userid

public user userinfo

}

3 在新建乙個codefirstdbcontext型別,繼承自dbcontext

public class codefirstdbcontext : dbcontext

public dbsetuser

public dbsetorder

protected override void onmodelcreating(dbmodelbuilder modelbuilder)

}

4 至此,資料庫相關的開發完成,下面通過**驗證是否有誤,在main方法中新增一下**

user u = new user ;

order o = new order ;

//寫入資料

using (codefirstdbcontext db = new codefirstdbcontext())

//讀取資料

using (codefirstdbcontext db = new codefirstdbcontext())

name:");

}foreach (order dborder in db.order)

name:");}}

console.readkey();

結果:資料寫入並查詢,此時.可在相應的伺服器上檢視建立的資料庫和表中的資料

二 database first模式,即資料庫先行

1 新建乙個控制台程式(這個不多說),並新新增entities和dbcontext資料夾,分別存放模型和資料庫上下文類,通過nuget新增entity framework包

2 新建資料庫及表(可以使用上例中生成的資料庫,也可以自己新建)

3 新建乙個db資料夾,在該檔案下右鍵-->新增-->新建項,選擇ado.net實體資料模型,命名為userorder,點選新增,

選擇 來自資料庫的ef設計器

點選下一步

在下一步,選擇要生成模型的物件,這裡選擇表即可

點選完成

4 此時專案結構如圖5

5 在main方法中,新增如下**,然後執行,就可以看到上例子中新增的資料了

using (modelfirstentities db = new modelfirstentities())

name:");

}foreach (order dborder in db.orders)

name:");}}

console.readkey();

三 model first模式,即模型先行

1 同樣的,新建乙個控制台程式,通過nuget新增entity framework包

2 新建乙個db資料夾,在該檔案下右鍵-->新增-->新建項,選擇ado.net實體資料模型,命名為userorder,點選新增,

選擇 空ef設計器模型

點選完成

3 在開啟的userorder.edmxw檔案中

3.1 右鍵-->新增-->實體

3.2 開啟圖8所示窗體,按圖設定完成後,點選確定

3.3 按照下圖的步驟新增屬性

3.4 重複以上的步驟,新建order實體

3.5 右鍵-->新增-->關聯,新建兩表之間的關係

3.6 右鍵-->根據模型生成資料庫

3.7 點選下一步,選擇ef版本

3.8 點選下一步,會生成相應的sql語句,點選完成,系統會自動開啟新建立的sql語句

3.9 右鍵開啟的sql語句檔案,選擇執行(此時可能需要連線資料庫),完成後會生成相應的資料庫和表

4 在main方法中新增如下**

user u = new user ;

order o = new order ;

//寫入資料

using (userordercontainer db = new userordercontainer())

//讀取資料

using (userordercontainer db = new userordercontainer())

name:");

}foreach (order dborder in db.orders)

name:");}}

console.readkey();

執行程式,沒有其他錯誤的話會有相應的資料,並且資料庫中也會有相應的數

Windows Installer的簡單應用

windows installer的簡單應用 2010年11月12日 因為要做乙個類似windows update的東西,以免程式更新時跑來跑去麻煩,雖然類似的工具很多,但是大都很複雜,於是決定自己做乙個類似的簡單程式。對比客戶端和伺服器端的程式版本,並把伺服器端新版本程式拷回來都好做 用vpn,相...

Windows Installer的簡單應用

windows installer的簡單應用 2010年11月12日 因為要做乙個類似windows update的東西,以免程式更新時跑來跑去麻煩,雖然類似的工具很多,但是大都很複雜,於是決定自己做乙個類似的簡單程式。對比客戶端和伺服器端的程式版本,並把伺服器端新版本程式拷回來都好做 用vpn,相...

css vertical align簡單的應用

vertical align屬性值 我見過的 1 用來寫在img標籤上,讓兩旁的字與底部 頂部 中間對齊 vertical align text top vertical align text bottom vertical align middle 這一前面的文字 這一前面的文字 src asse...