(自我修練一) Entity Framework 與 LINQ 概觀

  • 3869
  • 0

(自我修練一) Entity Framework 與 LINQ 概觀

參考資料來源:Entity Framework與LINQ開發實戰 一書

image

 

傳統的資料存取架構有兩個問題:

1. 前端程式與後端資料庫結構緊密耦合:

    由於直接對資料庫進行存取,因此前端程式必須與後端資料庫結構緊密結合,才能順利存取。這會造成日後資料庫維護與更新上的困難。

2. SQL 語法的撰寫:

    開發人員必須撰寫 SQL 語法來操作資料庫。

 

EntityFramework 資料存取架構:

就是在前端程式與資料庫之間多架了一層資料結構,稱作實體資料模型(EDM)。

它會對應真正的資料結構,如此避免前端程式直接存取資料庫。(這就解決了問題 1)

而開發人員則是撰寫程式 (透過 LINQ Entity SQL 這兩種敘述) 存取 EDM 即可。EntityFramework

會自動將這兩種敘述轉成對應的關連式 SQL。(這就解決了問題 2)

 

實體資料模型(EDM):

實體資料模型是一個 XML 檔 (副檔名為.edmx),裡頭的 XML 元素會對應資料庫中的資料表與欄位。

想用手動方式透過 EntityFramework 進行資料庫存取是很困難的!而 Visaul Studio 有內建工具可以

幫助我們 - 實體資料模型建立精靈圖形化介面設計師]。

 

透過 EntityFramework 存取資料庫有三個步驟:

  1. 建立實體資料模型,也就是對應底層資料庫結構的 XML 檔案。  (圖中 .edmx 部份)
  2. 針對建立的實體資料模型,撰寫對應的實體類別。                     (圖中 .Designer.cs 部份)
  3. 設計客戶端程式,透過 LINQEntity SQL 操作實體類別

1 跟 2 是對應的關係,要手動建立很難!因為這得根據底層資料庫的結構做設計。因此建議使用 Visaul Studio 的工具直接產生,若有需要可再做修改。

 

LINQEntity SQL

Linq 已是 C# 語法的一部份,是一種資料存取標準。幾乎通用於所有資料來源,包括資料集合、XML 與關聯式資料庫

Entity SQLEntityFramework 的專用語法,類似 SQL 語法。

Entity SQL LINQ to Entity 是兩項支援實體資料模型的技術,可以選擇其一使用。

(LINQ 功能較為強大,比較建議使用)