1. 程式人生 > >EF學習和使用(一)Database First

EF學習和使用(一)Database First

上篇部落格中介紹了ORM思想,可以說ORM思想在資料互動方面給我們帶來了一次變革。他能夠自動實現Entity實體的屬性與關係型資料庫欄位的對映,增刪改查的sql指令碼由ORM來自動生成,使我們編碼時不用考慮資料庫資料結構,而是以操作實體物件的形式來完成與資料庫的互動。與傳統開發方式相比ORM可以使我們編寫更少的程式碼來建立和維護應用程式。不得不說ORM這種思想的確優雅。

實現ORM思想的框架有很多,有重型的 Hibernate,EF,Nhibernate,微型的dapper,Fetalpoco等, 兩類框架各有千秋,需要按照系統情況進行選擇。重型的ORM框架適合與企業內部系統,使用人數最好一萬以內。如果是網際網路系統則應該選擇微型的ORM框架。

ITOO .net版選用的是EntityFramework,對於EF已經學習和使用過一段時間了,現在來對EF做個系列的總結。
Entity Framework 是微軟以 ADO.NET 為基礎所發展出來的物件關係對應 (O/R Mapping) 解決方案,EF4.1之前EF支援“Database First”和“Model First”程式設計方式,從EF4.1開始EF開始支援支援“Code First”程式設計方式,今天咱們先從最簡單的Database First開始說起,建立起咱們的第一個EF程式。

“Database First”模式顧名思義:“資料庫優先”,使用這種模式的前提是應用程式已經擁有相應的資料庫,咱們可以使用EF設計工具由資料庫生成資料模型類,也可以使用Visual Studio模型設計器修改這些模型之間對應關係。

第一步

首先建立一個控制檯應用程式,然後右鍵新增新建項,選擇“ADO.NET 實體資料模型”,名稱輸入ModelTest:

第一步

第二步

接著選擇來“自資料庫的EF設計器”即DataBaseFirst:

這裡寫圖片描述

第三步

選擇新建連線並設定連線屬性:

這裡寫圖片描述

第四步

然後選擇剛才新建的連線

這裡寫圖片描述

第五步

然後選擇要對映的“User”表,完成:

這裡寫圖片描述

建立完模型之後,你會發現Visual Studio自動為你生成了“User”實體類和一個“EFTestEntitiesContext”資料庫上下文操作類:

這裡寫圖片描述

下面簡單的看一下如何使用EF進行資料查詢,查詢可用兩種方式,Linq和Lambda。

Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EFDBFirst
{
    class Program
    {
        static void Main(string[] args)
        {
            //例項化資料庫上下文
            EFTestEntities dbcontext = new EFTestEntities();

            //使用Lambda表示式查詢資料
            var user = dbcontext.User.Where(o => o.Name == "qiumuxiaq141812").ToList();

            //Linq語句查詢
            var user1 = from o in dbcontext.User
                        where o.Name == "qiumuxiaq141813"
                        select o;

            //列印查詢結果  
            if (user.Any())
            {
                Console.WriteLine("Lambda方式:"+ user.First().Name + "----" + user.First().Sex);
                Console.WriteLine("Linq方式:" + user1.First().Name + "----" + user1.First().Sex);
            }

            Console.Read();
        }
    }
}

執行結果如下圖:

這裡寫圖片描述



注意:如果咱們的資料庫表結構發生改變後,只需在模型設計檢視空白處右鍵,選擇“從資料庫更新模型”接著按照嚮導操作即可將模型更新。