過去,Entity Framework (以下簡稱 EF)自動根據模型實體產生對應的專屬類別支援底層資料的存取操作,而這些類別與模型緊密的耦合,限縮了系統發展的彈性,難以測試甚至重用,新版的 EF4 導入了 Plain Old CLR Object(簡稱 POCO)支援,開發人員透過傳統典型的類別設計使用 EF 以提供系統的 O/RM支援。
假設有一個SQL Server Express 資料庫,名稱為FirstEF.ItemXContext,其中只有一個資料表 Items ,結構如下 :
這個資料表包含以下的資料:
.jpg)
接下來建立一個主控台應用程式類型專案,將其命名為 FirstEF 如下:
.jpg)
建立完成的專案畫面如下:
.jpg)
於方案總管中的 FirstEF 節點中點擊右鍵開啟功能表,點選「管理NuGet套件」開啟管理畫面:
於其中找到 EntityFramework 項目,按一下「安裝」按鈕,進行EntityFramework 功能的安裝動作。
.jpg)
安裝過程將出現「授權接受」畫面,按一下「我接受」即可,等待安裝完成,最後關閉安裝畫面,回到管理畫面,現在 EntityFramework 項目右上角出現勾選圖示,表示已安裝完成。
.jpg)
現在我們可以開始撰寫程式透過 Entity Framework 存取資料庫了。開啟專案中的Program.cs 檔案,建立以下的程式碼:
執行專案會得到以下的畫面,其中找出Item資料表中最新的一筆商品書籍資料的名稱。
.jpg)
經過簡單的設計,我們已經成功透過 Entity Framework 存取資料庫,如你所見,其中並不需要 SQL 語法。
假設有一個SQL Server Express 資料庫,名稱為FirstEF.ItemXContext,其中只有一個資料表 Items ,結構如下 :
欄位
|
說明
|
ItemId
|
書籍商品編號
|
Name
|
書籍商品名稱
|
Price
|
書籍商品價格
|
ISBN
|
書籍商品ISBN 碼
|
這個資料表包含以下的資料:
.jpg)
接下來建立一個主控台應用程式類型專案,將其命名為 FirstEF 如下:
.jpg)
建立完成的專案畫面如下:
.jpg)
於方案總管中的 FirstEF 節點中點擊右鍵開啟功能表,點選「管理NuGet套件」開啟管理畫面:
於其中找到 EntityFramework 項目,按一下「安裝」按鈕,進行EntityFramework 功能的安裝動作。
.jpg)
安裝過程將出現「授權接受」畫面,按一下「我接受」即可,等待安裝完成,最後關閉安裝畫面,回到管理畫面,現在 EntityFramework 項目右上角出現勾選圖示,表示已安裝完成。
.jpg)
現在我們可以開始撰寫程式透過 Entity Framework 存取資料庫了。開啟專案中的Program.cs 檔案,建立以下的程式碼:
class Program
{
static void Main(string[] args)
{
ItemXContext db = new ItemXContext();
Console.WriteLine(db.Items.AsEnumerable().Last().Name);
Console.Read();
}
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public int price { get; set; }
public string ISBN { get; set; }
}
public class ItemXContext : DbContext
{
public ItemXContext()
: base("name=ItemXContext") { }
public DbSet<Item> Items { get; set; }
}
}
執行專案會得到以下的畫面,其中找出Item資料表中最新的一筆商品書籍資料的名稱。
.jpg)
經過簡單的設計,我們已經成功透過 Entity Framework 存取資料庫,如你所見,其中並不需要 SQL 語法。
4 則留言:
請問一下,程式碼裡的
public ItemXContext()
: base("name=ItemXContext") { }
這裡的connectionStrings 裡的 metadata
要怎麼對應呢?
專案根目錄下有一個Web.config,將其開啟,然後找到
<connectionStrings>
<add name="ItemXContext" connectionString="…" providerName="System.Data.SqlClient" />
</connectionStrings>
將名稱設定如上,再填上你的資料庫連線字串即可
謝謝,我找到問題了
GOOD LUCK
張貼留言