將EF Code First 應用於已經存在的資料庫

來源:互聯網
上載者:User

標籤:wpa   scn   wps   gsl   lrm   fail   sdi   pmu   mpi   

  Entity Framework v6.1 開始原生支援將Code First 應用於一個已經存在的資料庫。下面以一個demo來講解如何把Code First 應用於已經存在的資料庫以及如何使用Code First 移轉來更新資料庫。

1.把Code First應用於已經存在的資料庫

  首先,建立資料庫CodeFirstFromExistingDB,接著建立兩個表Categories 和 Products ,表結構如下:

Categories :

Products:

然後插入測試資料:

   

接著,建立一個MVC項目並且從資料庫產生Code First 資料模型:

1.建立一個名為CodeFirstExistingDB的web應用 ,並且設定身分識別驗證為個人使用者賬戶

web應用建立完成後,右擊項目目錄,選擇添加-建立項-資料-ADO.NET實體資料模型,設定名稱為:StoreContext

點擊添加,在嚮導頁選擇來自資料庫的Code First

點擊下一步,在選擇串連介面點擊建立串連,

在串連屬性頁面,設定資料庫資訊:

點擊下一步,選擇資料庫物件(表),並且勾選確定所產生對象名稱的單複數形式複選框

 

ADO.NET實體資料模型建立完成後,會在項目根目錄建立Product、Category以及StoreContext三個類。

接著添加控制器和視圖來展示資料:

產生項目,然後右擊Controller檔案夾,選擇添加-控制器,選擇包含視圖的MVC5控制器(使用Entity Framework),控制器設定如下:

建立完成後,右擊視圖檔案件下Products檔案夾下的index.cshtml,在瀏覽器中查看,可以看到資料展示到頁面上。

2.使用Code First 移轉更新資料庫

  Code First 移轉,可以把你在代碼中對模型的修改更新到資料庫,要使用Code First 移轉,首先需要開啟它:

在包管理器控制台輸入:Enable-Migrations -ContextTypeName CodeFirstExistingDB.StoreContext ,斷行符號。(注意,需要制定需要使用的上下文(context)因為在建立項目時自動建立了身分識別驗證的上下文)。執行完成之後會建立Migrations 檔案夾,裡麵包含一個Configuration.cs 類。

  此時,要使Code First工作還需要一個額外的步驟,如果現在建立一個遷移,它會嘗試把上下文裡包含的說有實體添加到資料庫,由於Products和categories 表已經存在於資料庫中,所以遷移會失敗。所以首先需要建立一個初始化為空白的遷移,然後我們就可以對任何修改添加遷移了。

  在包管理器控制台輸入:Add-Migration InitialCreate -IgnoreChanges 以建立一個空的遷移。

IgnoreChanges 標識用於確保這次遷移不會做任何事。執行它會在資料庫中建立migrations 表,migrations 表是一個對資料庫遷移之前的快照。

  接著,在包管理器控制台輸入:update-database 用於把初始化遷移更新到資料庫。

  遷移初始化完成後,來使用Code First 移轉 更新資料庫:

  在Product表中添加Description 列,並且設定長度為50,([StringLength(50)] );現在添加一個新的遷移來把修改更新到資料庫。

在包管理器控制台輸入:Add-Migration add_product_description ,執行後Migrations 檔案夾會增加一個檔案,用來描述這次遷移。接著,在包管理器控制台輸入:

update-database , 新的列就會被增加到Products表中。

將EF 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.