[C#][EF] Code First From Database (二) DbContext

這一篇將檢視DbContext的內容
並確認連線字串設定是否正確

首先要打開目標檔案,下圖是上一篇所建立出的檔案清單
範例所指定的Model Name為EFEntities
其他Class則是從勾選的資料表自動產生

2017-4-18 上午 11-56-01

Class內容如下,分成三個部分

  1. 建構式
  2. DbSet宣告
  3. OnModelCreating的Override
public partial class EFEntities : DbContext
{
    public EFEntities(): base("name=EFModel")
    {}
    public virtual DbSet<Categories> Categories { get; set; }
    public virtual DbSet<Customers> Customers { get; set; }
    public virtual DbSet<Employees> Employees { get; set; }
    ......
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<CustomerCustomerDemo>()
            .Property(e => e.CustomerID)
            .IsFixedLength();
        modelBuilder.Entity<CustomerDemographics>()
            .HasMany(e => e.CustomerCustomerDemo)
            .WithRequired(e => e.CustomerDemographics)
            .WillCascadeOnDelete(false);
    ......
    }
}

建議檢查連線字串的部分
可以從base(“name=EFModel")看到指定的名稱
然後到config檔案去找連線字串,範例專案為App.config,如下圖

2017-4-18 下午 04-04-56.png

至於DbSet的宣告即是對應資料庫的Table或View
而OnModelCreating的Override較為複雜
建議參考以下連結及書籍

網址:Entity Framework Code First 對應規則設定
書籍:Entity Framework 實務精要 (康廷數位出版)

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s