Entity Framework - 空的 Code First 模型

在沒有資料庫實體的前提下,如果要建立全新的專案,Entity Framework 可以讓你從空的 Code First 模型開始逆向從程式碼產生資料庫結構。先建立需要的類別,Visual Studio 會在專案第一次執行時,根據連線自動建立需要的資料庫結構。於新建的專案KTIM_CF_E 加入新項目,同樣選擇ADO.NET實體資料模型,並維持預設名稱Model1。



在接下來的畫面中,選擇空的Code First 模型,並且按一下完成按鈕即可。



現在回到專案畫面,方案總管視窗下新增了必要的參考,而其中亦新增了一個實體資料模型類別檔案 Model1.cs。



Model1類別繼承了DbContext,其中的建構式參數name=Model1指定了連線字串名稱Model1,開啟組態檔的對應連線設定如下:

<connectionStrings>
    <add name="Model1"
connectionString="data source=(LocalDb)\v11.0;
initial catalog=KTIM_CF_E.Model1;
integrated security=True;
MultipleActiveResultSets=True;
App=EntityFramework"
providerName="System.Data.SqlClient" />
</connectionStrings>

在預設的情形下,連線的目標資料庫是 LocalDb ,並且以專案名稱(KTIM_CF_E)連接所建立的實體資料模型名稱(Model1)為預設資料庫名稱。
現在開啟Model1.cs檔案,修改內容如下:

namespace KTIM_CF_E
{
    using System;
    using System.Data.Entity;
    using System.Linq;

    public class Model1 : DbContext
    {
        // 您的內容已設定為使用應用程式組態檔…
        public Model1()
            : base("name=Model1")
        {
        }
        // 針對您要包含在模型中的每種實體類型新增 DbSet。…

        public virtual DbSet<Product> Product { get; set; }
    }
    public class Product
    {
        public int ProductId { get; set; }   
        public string Title { get; set; }
        public int? Price { get; set; }
        public int? Pages { get; set; }
    }
}

其中建立一個新的Product類別,包含所要建立的資料表欄位,另外於Model1 類別裏新增一個屬性 Product ,設定為DbSet 型別,支援Product資料的存取。
接下來同上述KTIM_CF範例,開啟Program.cs 輸入完全相同的內容。


class Program
{
static void Main(string[] args)
    {
         Model1 db = new Model1();
         Console.WriteLine(db.Product.Count());
         Console.ReadLine();
    }
}

接下來執行專案,Visual Studio 根據 Model1 連線資訊自動於 LocalDb 建立一個KTIM_CF_E.Model1資料庫,並且於其中建立Product 資料表以對應Product類別,由於新建立的資料表Product中沒有任何資料,因此最後的輸出結果為 0。

沒有留言: