ASP.NET MVC5 + EF6 入門教程 (5) Model和Entity Framework

文章來源:?Slark.NET-博客園 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html?

上一節:ASP.NET MVC 5 入門教程 (4) View和ViewBag

下一節:ASP.NET MVC5 + EF6 入門教程 (6) View中的Razor使用

源碼下載:點我下載

一、創建Model

MVC中的Model是用來給View提供顯示數據的對象。

這里我們首先創建一個Model對象。

在解決方案資源管理器中右鍵點擊Models文件夾,選擇添加->類。添加一個名為Employee.cs的Model類。Models文件夾是默認存放所有Model的地方。

在Employee.cs文件中添加如下代碼:

namespace SlarkInc.Models
{public class Employee{public int Id { get; set; }public string Name { get; set; }public int Age { get; set; }}
}

這樣我們就建立好了一個Model數據模型包含Id、Name、Age三個屬性。

二、生成數據庫

為了持久化數據,我們這里用Entity Framework。

Entity Framework (EF) 簡單點說就是.NET開發中的一種訪問數據庫的方法,其最大的特點就是能通過面向對象的方法訪問數據而不用寫sql語句。

我們用EF的Code First方法創建數據庫表。

Code First方法簡單點說就是第一步用C#創建一個實體類,第二步由這個類生成對應的數據庫。

第一步上面已經完成。第二步生成數據庫表之前要創建數據庫上下文。

將Employee.cs文件中的代碼寫成如下形式:

using System.Data.Entity;
namespace SlarkInc.Models
{public class Employee{public int Id { get; set; }public string Name { get; set; }public int Age { get; set; } } public class EmployeeDBContext : DbContext {  public DbSet<Employee> Employees { get; set; } } }

圖中黃色標記部分就是為EF持久化添加的代碼。

EmployeeDBContext類繼承自EF提供的DbContext。EmployeeDBContext代表Employee的數據庫上下文,負責處理數據的增刪改查操作。

public DbSet<Employee> Employees { get; set; }將C#的Employee類映射到數據庫的Employee表。

這里我們使用的數據庫是?SQL Server Express LocalDB。它是?SQL Server 的輕量級免費版。好處是VS自帶,不用額外安裝。這樣我給大家上傳的代碼可以直接創建數據庫,不用額外的安裝和配置。便于學習。

下面我們來配置數據庫鏈接,來連接到這個數據庫。從解決方案資源管理器根目錄打開web.config。這是一個XML配置文件。找到其中的<connectionStrings>...</connectionStrings>元素并將其內容寫成如下代碼。

<connectionStrings><add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-SlarkInc-20141130103639.mdf;Initial Catalog=aspnet-SlarkInc-20141130103639;Integrated Security=True"providerName="System.Data.SqlClient" /><add name="EmployeeDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Employees.mdf;Integrated Security=True"  providerName="System.Data.SqlClient" /> </connectionStrings>

上面代碼中黃色標記的就是新添加的數據庫鏈接。有幾點值得關注:

  • name="EmployeeDBContext"要與創建的DBContext類名字相同。這樣DBContext才能使用這個數據庫鏈接。

  • AttachDbFilename=|DataDirectory|\Employees.mdf;指出了數據庫文件的儲存位置和文件名。在一般MVC5項目中它應該是在App_Data文件夾下。文件名是Employees.mdf。

下面我們來創建操作Model的Controller和View。

在解決方案資源管理器中右鍵點擊Controllers文件夾選擇添加->控制器,在彈出的選擇支架的窗口中選擇包含視圖的MVC5控制器(使用 Entity Framework)。點擊確定。

在彈出的添加控制器對話框中做如下圖配置。

  • 控制器名稱:EmployeesController
  • 模型類:Employee (SlarkInc.Models)
  • 數據上下文:EmployeeDBContext (SlarkInc.Models)
  • 下面三個勾選框都要打勾
  • 點擊添加

項目中會自動添加一個Model類對應的Controller和View對Model進行增刪改查的操作。

在解決方案資源管理器中右擊Views文件夾下Employees文件夾下的Index.cshtml選擇在瀏覽器中查看。得到如下結果。

可以看到一個Model對應的空列表。

?下面我們來查看數據庫。如下圖所示在解決方案資源管理器下面的小圖標中點擊顯示所有文件,如圖所示。然后在App_Data文件夾下就會有Employees.mdf文件。這就是EF創建的數據庫文件。

雙擊Employees.mdf文件,出現服務器資源管理器窗口。如下圖右側所示。選擇數據連接->EmployeeDBContext->表->Employees,雙擊。之后,主頁面就會顯示dbo.Emplyees數據庫表設計窗口。上部分顯示表結構,下部分顯示創建表所用的T-SQL語句。

至此,Model創建及EF用CodeFirst方法生成數據庫表的操作全部完成。

您的留言和推薦是我寫作的動力,謝謝。

上一節:ASP.NET MVC 5 入門教程 (4) View和ViewBag

下一節:ASP.NET MVC5 + EF6 入門教程 (6) View中的Razor使用

轉載于:https://www.cnblogs.com/slark/p/mvc5-ef6-get-started-model.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376410.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376410.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376410.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

160 - 29 cosh.3

環境 Windows xp sp3 工具 exeinfope ollydbg 查殼 無殼的MFC程序 測試 字符串搜索&#xff1a; 004014F5 |. E8 AA030000 call <jmp.&MFC42.#CWnd::GetWindowTextLengthA_> 004014FA |. 8945 EC mov [local.5],eax 004014FD |. 837D EC 0…

hdu--4902--線段樹

題意 前面一段廢話 這題 最有意思的應該是出題人 是clj 這題的時限放的太寬了 給了15s 我也是醉了 區間更新。 1 #include <iostream>2 #include <algorithm>3 using namespace std;4 5 const int size 200010;6 int a[size];7 struct data8 {9 int L , R ,…

(五) 面向對象類設計原則

1. 開閉原則&#xff08;the Open Closed Principle OCP&#xff09; 一個模塊在擴展性方面應該是開放的而在更改性方面應該是封閉的。因此在進行面向對象設計時要盡量考慮接口封裝機制、抽象機制和多態技術。該原則同樣適合于非面向對象設計的方法&#xff0c;是軟件工程 設計…

160 - 30 cracking4all.1

環境 Windows XP sp3 工具 exeinfope ollydbg 查殼 無殼的VB程序 測試 這個serial藏得比較里面&#xff0c;多點幾下才能看到 字符串搜索&#xff1a; 00403338 . 50 push eax ; /var18 00403339 . 51 …

java2s.com

http://www.java2s.com/Code/JavaAPI/CatalogJavaAPI.htm轉載于:https://www.cnblogs.com/reborn2012/p/3326445.html

MVC5 + EF6 入門完整教程

MVC5 EF6 入門完整教程 原文:MVC5 EF6 入門完整教程第0課 從0開始 ASP.NET MVC開發模式和傳統的WebForm開發模式相比&#xff0c;增加了很多"約定"。 直接講這些 "約定" 會讓人困惑&#xff0c;而且東西太多容易忘記。 和微軟官方教程不同&#xff0c…

160 - 31 cracking4all.2

環境 Windows xp sp3 工具 exeinfope ollydbg 查殼 無殼VB程序 測試 輸入1234567 OD載入字符串搜素&#xff0c;往上翻就看到這里&#xff0c;我截取部分片段&#xff1a; 00402C26 . 8D55 98 lea edx,dword ptr ss:[ebp-0x68] ; 取serial長度…

stm32的DFU使用方法

stm32的dfu看上去是個很高級的東西&#xff0c;似乎可以通過USB給內部flash、外部spi flash、外部nor等東西刷寫數據、把數據讀出來&#xff0c;但是用了一下感覺確實有點麻煩。 先不管原理是怎樣的&#xff0c;使用方法是這樣&#xff1a; 1、先下載這個Dfuse&#xff0c;然后…

160 - 32 genocide1

環境 Windows xp sp3 工具 upx exeinfope ollydbg 查殼 發現是upx殼&#xff0c;手脫的話會不干凈&#xff0c;影響OD分析。 所以就直接用 upx -d 脫了 手脫&#xff1a; upx -d: 用upx -d 脫的版本進行分析。 第一次運行時顯示這個&#xff1a; 缺少Reg.dat…

vector function trmplate

/*vectorfunction templateprogrammer:qpz */ #include <iostream> #include <vector> #define MAX 10 using namespace std; class Myclass{ private:vector <int> vel;//可均分的動態數組 public:void Add(int x){vel.push_back(x);}void print(); }; void…

軟件工程個人項目11061180王宇杰

&#xff08;1&#xff09;我完全不知道要花費多少時間&#xff0c;因為從來沒有進行過類似的項目&#xff0c;涉及的很多問題我以前也根本不會。簡單的估計一下&#xff0c;這至少是15小時的工作量。 &#xff08;2&#xff09;前期的準備工作很耗時間&#xff0c;因為一開始根…

160 - 33 Cruehead.1

環境 windows xp sp3 工具 exeinfo pe ollydbg 查殼 無殼的匯編程序&#xff08;OD載入的出來的&#xff09; 測試 當name輸入為數字時&#xff0c;會彈出兩次錯誤框。 OD載入搜字符串&#xff0c;發現有兩個地方&#xff1a; 0040134D /$ 6A 30 push 0x…

mac osx 10.10 pip 安裝問題

在mac osx 升級到 10.10(Yosemite)以后&#xff0c;用pip以及easy_install 安裝python包的時候&#xff0c;如果包需要編譯&#xff0c;就會編譯失敗&#xff0c;錯誤如下&#xff1a; build/temp.macosx-10.10-x86_64-2.7/greenlet.o -o build/lib.macosx-10.10-x86_64-2.7/gr…

英文系統上網頁內容亂碼的解決

今天隨便寫了一段html 代碼示例&#xff0c;代碼如下&#xff1a; <html lang"zh-cn"> <head> </head> <body> <h1>HTML 教程目錄</h1> <ul> <li><a href"#C1">第一章</a></li> <li…

160 - 34 Cruehead.3

環境 windows xp sp3 工具 1.exeinfo pe 2.ollydbg 3.WinHex 查殼 和上一個一樣&#xff0c;OD載入判斷出 測試 運行后發現是沒有任何提示&#xff0c;而且沒有輸入serial的窗口&#xff0c;通過任務管理器可以看出程序的名稱寫有“Uncracked”&#xff0c;可以猜測…

sed awk tr等文本處理命令

指定行范圍替換&#xff1a; sed -i "520,950s/\(.*\)\(HOST_CMD_.*\)\(,\)/\1{ \2, \"\2\" },/g" hostCmdMacro.h linux shell sed命令與轉義字符 A“2013/06/09“ sed “s#hello#$A#" sed 指定行范圍匹配 刪除文本中的重復行(sortuniq/awk/sed) 263…

160 - 35 cupofcoffe.1

環境 Windows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后可以看出是VB程序 測試 輸入&#xff1a;12345678 顯示的內容發生了改變&#xff0c;也不影響查找字符串。 004FEC14 > \8B4D E8 mov ecx,dword ptr ss:[ebp-0x18] 004FEC17 . 51 …

centos7 安裝mysql

http://my.oschina.net/u/919612/blog/310533 測試可用 隨后又想到了&#xff0c;做個iso鏡像&#xff0c;然后掛載在CDrom上&#xff0c;然后安裝JDK成功&#xff0c;但是mysql安裝失敗&#xff0c;可能由于只從官網上下載了server&#xff0c;而沒有解決依賴關系。 最后&…

ecshop后臺增加模板頁的方法

CShop的動態模板機制是一個非常靈活的系統,管理員可以在后臺根據自己的要求調整模板模塊的顯示位置。本文詳細講解了如何修改ECSHOP內部結構使得用戶可以添加自己的模板頁從而方便靈活的使用系統自帶的模板系統和廣告位系統。 如下圖所示 可以看到ECShop支持設置的模板一共如上…

160 - 36 cupofcoffe.2

環境 Winows xp sp3 工具 1.exeinfo PE 2.ollydbg 查殼 OD載入后看出是VB程序 測試 輸入&#xff1a;12345678 繼續OD搜字符串&#xff1a; 00521688 . 68 60054500 push cupofcof.00450560 ; UNICODE ".........." 0052168D …