Entity Framework CodeFirst------使用CodeFirst方式建立數據庫連接(一)


本文分步演練介紹通過 Code First 開發建立新數據庫。這個方案包括建立不存在的數據庫(Code First 創建)或者空數據庫(Code First 向它添加新表)。借助 Code First,可以使用 C# 類定義模型。可以選擇使用類的特性和屬性執行其他配置,也可以使用 Fluent API 執行其他配置。

1.使用工具

Vs2010、Vs2012或者Vs2013,本文使用的IDE是Vs2013

Nuget程序管理包

2.創建應用程序

簡單起見,我們將使用visual studio創建一個控制台應用程序,將控制台命名為EntitySample,創建完成后,我們在項目下面新建一個文件夾並命名為Model,新建一個Student類,在student類中添加幾個屬性

public Class Student
{ 
    public int ID{ get; set; }

    public string Name { get; set; } 

    public string Class { get; set; } 

    public int Age { get; set; } 
}

 3.創建實體DbContext

DbContext稱之為數據庫上下文,其可以代表一個數據庫的集合或者表示為數據庫的一個會話,以便我們查詢和保存數據。我們定義一個派生自 System.Data.Entity.DbContext 的上下文,並為模型中的每個類公開一個類型化 DbSet<TEntity>,通過該上下文可以使用linq進行查詢工作。在使用DbContext之前,我們需要添加 EntityFramework NuGet 程序包。

      項目”–>“管理 NuGet 程序包…”
      注意:如果沒有“管理 NuGet 程序包…”選項,則應安裝 最新版本的Nuget

      選擇“聯機”選項卡

      輸入EntityFramework 查找 選擇“EntityFramework”程序包

      單擊“安裝”

安裝完成后。我們在項目下新建一個文件夾DbClassContext,在該文件夾下添加一個類 並命名為EntityClassContext,添加 System.Data.Entity 引用,並將類繼承自DbContext。

該類主要管理我們自定義的所有的實體類。通過DbSet設置 DbSet代表數據庫中的所有實體

public Class EntityClassContext: DbContext 
{ 
    public DbSet<Student> StudentContext { get; set; } 
}

  4.在Program.cs控制台程序main方法中寫入代碼

5.運行效果如下

6.這樣我們通過EntityFramework創建了一個數據庫,這個時候我們就會有一個疑問,我們都沒有配置數據庫連接,打開項目的app.config,我們發現並沒有配置數據庫的連接字符串,那么數據到底存儲在哪兒去了。

原來我們在安裝完成VS2010、12、13時,其會安裝一個SQL Express實例,如果SQL Express 不可用則 Code First 將嘗試使用 LocalDb(默認情況下隨 Visual Studio 2012 安裝)數據庫以項目名稱+派生上下文的完全限定名命名,在我們的示例中上下文是EntitySample.EntityClassContext,所以我們會生成上述名稱的數據庫。

7.可以在 Visual Studio 中使用服務器資源管理器連接至此數據庫

“視圖”->“服務器資源管理器”
右鍵單擊“數據連接”並選擇“添加連接…”

如果尚未從服務器資源管理器連接至數據庫,則需要選擇 Microsoft SQL Server 作為數據源連接至 LocalDb ((localdb)\v11.0) 或 SQL Express (.\SQLEXPRESS),具體取決於安裝情況

8.連接成功后,我們可以查看到我們剛才添加的數據。

9.如果我們是在正式的開發過程中,可能需要連接本地的sql或者遠程的sql,那么我們需要更改數據庫連接方式。如果需要更改的話,我們打開項目下面的app.config配置文件,在<configuration></configuration>標簽下面配置連接字符串。name是指我們派生的DbContext名稱

10.通過配置上述字符串后,我們可以連接自己需要的數據庫,如果你需要連接其他數據庫,可以更改數據庫連接字符串。因為此次的實例項目比較簡單,園友們可以自己創建項目實驗即可。

下節我們集中討論一下Entity Framework在數據結構變化的時候,如何處理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM