Code First # 1 – ADO.NET Entity Framework 4.1

Code First 是ADO.NET Entity Framework 4.1 新推出的功能,原有的 Model First , Database First 又多了一種新的 ORM 解決方案。

Code First 和其他兩種方式比較不一樣的是在這個方案中不用到 .edmx 檔案工具來建置 model 。在其他兩個解決方案中,是利用 .edmx 來當作兩邊的中介,在這邊設定資料庫與 model 間的對應,在設定對應完之後再利用工具或是手動去產生程式碼。但是 在 Code First 是直接利用程式碼去產生資料庫,變成說資料庫反而是動態被產生的。

Required

Visual Studio 2010

ADO.NET Entity Framework 4.1

我用的是 Sql express

image

一開始先開啟一個空白的 Class Library 在這邊參考了 Entity Framework 這個元件

image

Entity Framework 這邊就有包含 System.Data.Entity ,但是注意的是這邊的只是增加的功能,所以如果只有單純 Reference 這個的話功能會不完全喔。所以這邊也可以用NuGet 這個 plugin 工具,可以省下一些時間。

接下來直接在 Domain.Model 設計整個 Model

image

接下來是設置DbContext

image

如圖中所示,我設立了一個 PlaceContext 繼承了 DbContext 這個類別,而其中有四個DataSet 的屬性。之後程式在執行的會將資料庫自動建立起來(預設是SQLEXPRESS)。

image

資料庫的名稱就是DbContext 的 Class 名稱,不過 Table 名稱就不是我設定的,系統根據 Model ClassName 加上複數型態,如果不要加上複數直接用 class name

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}

References

Code-First Development with Entity Framework 4

http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *