MVC和EF中的 Model First 和 Code First

來源:互聯網
上載者:User

標籤:frame   elf   ack   控制台   text   資料模型   建立資料庫   ide   管理   

準備:先引入MVC和EF的dll包

*命令方法:開啟工具——庫封裝管理員——封裝管理員控制台,選擇自己的項目

a)     Install-Package EntityFramework -Version 6.1.1

b)     Install-Package Microsoft.AspNet.Mvc -Version 5.2.2

 

一、Code First

 

模式是以代碼先行,將Model層寫好後反射資料庫的方法,這裡的資料庫需要自己建立,並與model層的欄位名完全對應。

實現的方法如下:

1.先建立一個實體類,取名Test(與資料庫表名一致),添加欄位

1   public class Test2     {3         public int Id { get; set; }4         public string Name { get; set; }5     }

2.建立一個Context類,取名TestContext,調用DbSet來反射資料庫的內容

1 public DbSet<Test> Test { get; set; } 

3.在controller層實現對model層資料的調用

1    private TestContext db = new TestContext();2    public ActionResult Index()3    {4         var data = db.Test.ToList();5         return View(data);6    }    

4.在View層中調用@Model.Id和@Model.Name。

5.在設定檔裡添加資料庫連接

1 <connectionStrings>2     <add name="TestContext" connectionString="Data Source=.\SQLEXPRESS; user id=sa;password=sa;Initial Catalog=test1;Integrated Security=True" providerName="System.Data.SqlClient" />3 </connectionStrings>

6.在資料庫中建立一個Test表,加入Id和Name欄位,即可運行測試。

二、Model First

模式是以資料庫為基準來編寫代碼,這裡需要先建立一個實體資料模型,根據這個模型將會自動產生資料庫檔案

1.建立資料模型,命名為model1,選擇空模型

2.在自己建好的Model1.edmx檔案頁面中右鍵,新增,實體,填寫實體資訊。實體名稱對應表名,建立鍵屬性對應表的主鍵。

建立好後右鍵點擊純量屬性在實體模型中添加欄位。

3.在自己的表上點擊“根據模型產生資料庫”

開啟資料庫即可看到自己剛剛所建的欄位資訊。調用資料庫的方法百度。

 

利弊:

ModelFirst比較方便,但每次產生時會重新建立資料庫,所以如果之前資料庫中有資料的話會被清空。

 

DEMO源碼下載   

 

MVC和EF中的 Model First 和 Code First

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.