Entity Framework簡介

零、什麼是Entity Framework

Entity Framework (簡稱EF),是.NET的 Object/Relational Mapping 實體框架(簡稱ORM),能夠在 SQL Server、MySQL、Oracle、等數據庫上使用。能夠將數據做爲業務對象和實體進行操做,使用LINQ進行查詢,使用C#進行操做和檢索。數據庫

1、領域建模方式

Entity Framework 有三種領域建模方式:Code FirstModel FirstData Firstapp

  1. Code First框架

    Code First 能夠經過類來描述模型,而後經過類來建立數據庫,這種類簡稱爲POCO(Plain Old CLR Object)。POCO中的C是指 .NET Framework公共語言運行時(Common Language Runtime,CLR)中的一個簡單對象。POCO對域對象使用盡量簡單的類,能夠包含屬性、方法等,可是方法不能實現持久化邏輯,也就是說POCO也能夠包含業務邏輯。Code First 優勢以下:設計

    • 能夠建立一個更富有邏輯、更靈活的應用程序;
    • 由於沒有自動生成難以修改的代碼,因此咱們能夠對代碼徹底控制;
    • 只須要定義映射,其他一切交給Entity Framework來處理;
    • 能夠用修改代碼的方式來修改數據庫;
    • 可使用它來映射表結構到一個已存在的數據庫。
  2. Model First對象

    Model First 容許咱們使用實體設計器在空模型中建立模型實體,及其關係和繼承層次結構,而後建立數據庫。優缺點以下:繼承

    • 沒法控制實體和數據庫,由於自動生成的代碼難以修改,可是對於小型且簡單的項目,它仍行之有效;
    • 在實體中添加額外的功能,不得不修改T4模板或者使用部分類來完成;
    • 數據庫模型的更改不是最佳選擇,由於是由模型定義了數據庫。
  3. Data First開發

    Data First 使咱們可以從現有數據庫建立模型,減小了自動生成代碼所需編寫的代碼量,也限制了咱們使用生成代碼的結構。優缺點以下:it

    • 若是已有DBA設計的數據來單獨開發或已存在數據庫,將做爲首選
    • 經過EDM嚮導爲咱們建立實體、關係和繼承層次結構,修改映射後還能夠生成實體;
    • 要在實體中添加額外的功能,必須經過T4修改模板或者使用部分類;
    • 數據庫的手動更改變爲可能,若是要修改數據庫表結構,只須要從數據庫更新實體模型便可。
相關文章
相關標籤/搜索