透過 Entity Framework 從已存在的資料庫讀取資料

假設有一個資料庫 KTMS,我們要建立應用程式透過 Entity Framework 對其儲存資料進行存取。現在建立一個主控台應用程式,展開專案功能表開啟加入新項目功能,於其中找到「ADO.NET實體資料模型」,將其新增,這是一個 .edmx 型態的檔案。


由於我們要從現成資料庫(KTMS)中查詢資料,因此於精靈畫面中,選取「從資料庫產生」項目,按下一步。


接下來是設定資料庫連接的畫面如下,按一下新增連接按鈕:


接下來是「選擇資料來源」的設定畫面,選取 Microsoft SLQ Server ,按一下繼續按鈕。


接下來是「連接屬性」設定,確定其中的伺服器名稱為測試電腦,移至畫面的下方,於「選取或輸入資料庫名稱」選單中展開下拉,找到KTMS資料庫將其選取,完成設定,按一下左下方的「測試連接」按鈕,檢視連接設定是否正常,最後按下確定按鈕,完成設定。


回到精靈畫面,資料連接已經設定完成,下方顯示連接字串,請特別注意最下方是預設連接設定的名稱 KTMSEntities 。


按下一步出現資料庫的內容結構畫面,於其中選取要查詢的資料物件。


展開資料表節點如下,同此系列文章的前述幾篇中的示範,找到其中的 Categories 資料表將其勾選,然後按下完成按鈕即可。


回到編輯器畫面,專案節點下方的參考清單裏面已經載入必要的組件 EntityFramework ,而且專案裏面多了一個 ModelKTMS.edmx 檔案,也就是上述一系列過程中新建立的資料表實體檔案。


編輯畫面則顯示  ModelKTMS.edmx  的圖形介面,其中顯示了資料表的相關欄位內容。


現在回到主控台程式 Program ,於其中建立以下的程式碼:

 class Program
    {
        static void Main(string[] args)
        {
            KTMSEntities ktms = new KTMSEntities();
            DbSet<Categories> table = ktms.Categories;

            IEnumerable<Categories> rows = from row in table
                                           select row;
            foreach (Categories row in rows)
            {
                Console.WriteLine(row.CategoryID + "" + row.CategoryName);
            }
            Console.ReadKey();
        }
    }

建立KTMSEntities物件,並引用 Categories 取得其回傳的 DbSet< Categories > 型態物件,透過 LINQ 敘述取得資料並且利用迴圈將其展開。





沒有留言: