Entity Framework Entity Framework綜述

來源:互聯網
上載者:User
         Entity Framework Entity Framework綜述

ADO.NET Entity Framework 是微軟以ADO,NET 為基礎所發展出來的對象關係對應的解決方案。

一、產生背景

 它是隨著物件導向的軟體開發方法發展而產生的。對象和關係資料是業務實體的兩種表現形式。業務實體在記憶體中表現為對象,在資料庫中表現為關係資料。記憶體中的對象之間存在關聯和繼承關係,而在資料庫中,關係資料無法直接表達多對多關聯和繼承關係。因此ORM一般以中介軟體的形式存在,主要實現程式對象到關聯式資料庫的映射。像Hibernate或NHibernate都是這個技術下的產物,但微軟沒有這樣的對象對應工具,為了有這樣的工具,微軟開發了ADO.NET Entity Framework.

二、發展曆程

  微軟在.NET Framework2.0發展時期,提出了ObjectSpace的概念,其技術與NHibernate相似,但ObjectSpace因為工程相當大所以在.NET Framework 2.0完成時ObjectSpace未完成,因此微軟將它納入下一版本的.NET Framework中,並加上了設計工具(Desinger),構成了現在的ADO.NET Entity Framework.

三、應用情境

  用ADO.NET Entity Framework自動為我們產生DAL代碼,ADO.NET Entity Framework可以進行儲存、添加、刪除、修改、讀取對象。ADO.NET Entity Framework負責產生SQL,我們只需要關注對象就好了,而不需費心關注資料庫結構。

四、體繫結構

五、主要模組與類

Entity FrameworkEntity Framework 是 ADO.NET 中的一組支援開發面向資料的軟體應用程式的技術。在EF中的實體資料模型(EDM)由以下三種模型和具有相應副檔名的對應檔進行定義。                  概念結構定義語言檔案 (.csdl) -- 定義概念性模型。                  存放結構定義語言檔案 (.ssdl) -- 定義儲存模型(又稱邏輯模型)。                 對應規格語言檔案 (.msl) -- 定義儲存模型與概念性模型之間的映射。

重要的類:

1、ObjectContext:ObjectContext封裝 .NET Framework 和資料庫之間的串連。此類用作“建立”、“讀取”、“更新”和“刪除”操作的網關。

2、ObjectQuery:有個有用的方法ToTraceString(),這個方法用於追蹤所執行的SQL語句,通過此方法我們可以擷取所執行的SQL語句,以便我們查看、分析具體執行的SQL語句

3、ObjectStateEntry:ObjectStateEntry維護實體執行個體或關係執行個體的狀態(已添加、已刪除、已分離、已修改或未更改)、索引值和原始值。還管理已修改屬性的列表

4、ObjectStateManager:ObjectStateManager用於維護對象映射、對象狀態/標識管理以及實體執行個體或關係執行個體的持久性。

 

六、CRUD典型的代碼:增、刪、查、改

1、根據學院ID擷取年級列表

_context.Classes.Where(c => c.SchoolID == schoolId).Select(c => c.Grade).Distinct().ToList()

2.根據班級ID擷取班級資訊

return _context.Classes.FirstOrDefault(c => c.ClassID == id)

3、添加班級

_context.Classes.Add(entity);

  int i = _context.SaveChanges()

4、刪除班級

 _context.Entry<Class>(entity).State=

System.Data.EntityState.Deleted;

int i = _context.SaveChanges()

5、修改班級

 _context.Classes.Attach(entity);

_context.Entry<Class>(entity).State=

System.Data.EntityState.Modified

  int i = _context.SaveChanges()

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.