安裝EF實體模型框架

Data Access and Storage > 學習 > Entity Framework > 開始操做 > 空間 - EF 設計器                                             

本視頻和分步演練介紹如何使用實體框架設計器來映射空間類型。另外,還演示瞭如何使用 LINQ 查詢來查找兩個位置之間的距離。javascript

本演練將使用 Model First 來建立一個新數據庫,但也能夠將 EF 設計器與  Database First 工做流結合使用來映射到現有數據庫。css

空間類型支持在實體框架 5 中引入。注意:要使用空間類型、枚舉和表值函數等新特性,開發時必須面向 .NET Framework 4.5。Visual Studio 2012 默認面向 .NET 4.5。html

要使用空間數據類型,您還必須使用提供空間支持的實體框架提供程序。有關更多信息,請參見 空間類型的提供程序支持java

存在兩種主要的空間數據類型:地理和幾何。地理數據類型用於存儲橢球數據(例如,GPS 緯度和經度座標)。幾何數據類型則用於表示歐幾里德(扁平)座標系統。web

更多視頻選項 — 包括下載架構

 

必備條件

爲完成本演練,須要安裝 Visual Studio 2012 的旗艦版、高級版、專業版或 Web Express 版本。app

 

設置項目

  1. 打開 Visual Studio 2012
  2. 在「文件」菜單上指向「新建」,再單擊「項目」
  3. 在左窗格中單擊「Visual C#」,而後選擇「控制檯」模板
  4. 輸入 SpatialEFDesigner 做爲項目名稱,而後單擊「肯定」

使用 EF 設計器建立新模型

  1. 在解決方案資源管理器中右鍵單擊項目名稱,指向「添加」,而後單擊「新建項」
  2. 從左側菜單中選擇「數據」,而後在「模板」窗格中選擇「ADO.NET 實體數據模型」
  3. 輸入 UniversityModel.edmx 做爲文件名,而後單擊「添加」
  4. 在「實體數據模型嚮導」頁上的「選擇模型內容」對話框中選擇「空模型」
  5. 單擊「完成」

顯示實體設計器,爲模型編輯提供設計圖面。

該向導執行下列操做:

  • 生成定義概念模型、存儲模型以及兩者之間的映射的 EnumTestModel.edmx 文件。將 .edmx 文件的「元數據項目處理」屬性設置爲「嵌入輸出程序集中」,以便生成的元數據文件嵌入到程序集中。
  • 添加對如下程序集的引用:EntityFramework、System.ComponentModel.DataAnnotations 和 System.Data.Entity。
  • 建立 UniversityModel.tt 和 UniversityModel.Context.tt 文件,將它們添加到 .edmx 文件下面。這些 T4 模板文件生成的代碼用於定義 DbContext 派生類型和映射到 .edmx 模型中的實體的 POCO 類型

 

新增實體類型

  1. 右鍵單擊設計圖面上的空區域,選擇「添加」 ->「實體」,隨即出現「新建實體」對話框
  2. 指定 University 做爲類型名稱,指定 UniversityID 做爲鍵屬性名稱,將類型保留爲 Int32
  3. 單擊「肯定」
  4. 右鍵單擊該實體,而後選擇「新增」->「標量屬性」
  5. 將新屬性重命名爲 Name
  6. 添加其餘標量屬性,將其命名爲 Location 打開「屬性」窗口,將新屬性的類型更改成 Geography
  7. 保存模型並生成項目 注意:生成時,「錯誤列表」中可能會出現有關未映射的實體和關聯的警告。能夠忽略這些警告,由於在咱們選擇從模型生成數據庫以後,這些錯誤就會消失。

根據模型生成數據庫

如今,可生成一個基於模型的數據庫。

  1. 在設計圖面上的空白處右鍵單擊,而後選擇「根據模型生成數據庫」
  2. 將顯示「生成數據庫嚮導」的「選擇您的數據鏈接」對話框 單擊「新建鏈接」按鈕 指定 (localdb)\v11.0 做爲服務器名稱,University 做爲數據庫,而後單擊「肯定」
  3. 將彈出一個詢問是否須要建立新數據庫的對話框,請單擊「是」。
  4. 單擊「下一步」,「建立數據庫嚮導」生成用於建立數據庫的數據定義語言 (DDL) 生成的 DDL 顯示在「摘要和設置」對話框中 請注意,DDL 不包含映射到枚舉類型的表的定義
  5. 單擊「完成」 單擊「完成」不會執行 DDL 腳本。
  6. 「建立數據庫嚮導」執行如下操做: 在 T-SQL 編輯器中打開 UniversityModel.edmx.sql 生成 EDMX 文件的存儲架構和映射部分 向 App.config 文件添加鏈接字符串信息
  7. 在 T-SQL 編輯器中右鍵單擊,而後選擇「執行」 出現「鏈接到服務器」對話框,輸入步驟 2 中的鏈接信息,而後單擊「鏈接」
  8. 若要查看生成的架構,請在 SQL Server 對象資源管理器中右鍵單擊數據庫名稱,而後選擇「刷新」

保存和檢索數據

打開定義了 Main 方法的 Program.cs 文件。在 Main 函數中,添加如下代碼。

這段代碼向上下文中添加了兩個新的 University 對象。空間屬性使用 DbGeography.FromText 方法進行初始化。表示爲 WellKnownText 的地理點傳入該方法。接着,該代碼保存數據。而後,構造並執行 LINQ 查詢,該查詢返回一個位置相距特定位置最近的 University 對象。

using (var context = new UniversityModelContainer())  {      context.Universities.Add(new University()      {          Name = "Graphic Design Institute",          Location = DbGeography.FromText("POINT(-122.336106 47.605049)"),      });            context.Universities.Add(new University()      {          Name = "School of Fine Art",          Location = DbGeography.FromText("POINT(-122.335197 47.646711)"),      });        context.SaveChanges();        var myLocation = DbGeography.FromText("POINT(-122.296623 47.640405)");        var university = (from u in context.Universities                                  orderby u.Location.Distance(myLocation)                                  select u).FirstOrDefault();        Console.WriteLine(          "The closest University to you is: {0}.",          university.Name);  }

編譯並運行應用程序。該程序生成如下輸出:

The closest University to you is: School of Fine Art.

若要查看數據庫中的數據,請在 SQL Server 對象資源管理器中右鍵單擊數據庫名稱,而後選擇「刷新」。而後,右鍵單擊表,而後選擇「查看數據」。

 

摘要

本演練介紹瞭如何使用實體框架設計器來映射空間類型以及如何在代碼中使用空間類型。 

EF學習-獲取實體框架01

實體框架由 EF 設計器(包含在 Visual Studio 中)和 EF Runtime(在 NuGet 上提供)組成。

 

EF 設計器包含在 Visual Studio 中

最新版本的實體框架設計器包含在 Visual Studio 2012 中。

若是您執行的是 Visual Studio 2012 自定義安裝,那麼您將須要確保 Microsoft Web Developer Tools 或 Microsoft SQL Server Data Tools 已選中,不然 EF 設計器將不會安裝。

 

EF Runtime 在 NuGet 上提供

最新版本的實體框架以 EntityFramework NuGet 包 的形式提供。若是您不熟悉 NuGet 包管理器,建議您閱讀 NuGet 概述。若是您正在使用 Visual Studio 2012,那麼 NuGet 包管理器已經安裝。

安裝 EF NuGet 包

經過右鍵單擊項目的「引用」文件夾並選擇「管理 NuGet 包…」,能夠安裝 EntityFramework 包

經過程序包管理器控制檯安裝

或者,也能夠經過在 程序包管理器控制檯中運行如下命令來安裝 EntityFramework。

PM> Install-Package EntityFramework

 

安裝最新預覽版

以上方法將爲您提供實體框架最新的徹底支持版本。咱們一般會提供預發行版實體框架,但願您進行試用並向咱們提供反饋。

要安裝 EntityFramework 的最新預覽版,能夠在「管理 NuGet 包」窗口中選擇「包括預發行版」。若是沒有可用的預發行版,您將會自動得到實體框架最新的徹底支持版本。

或者,您也能夠在 程序包管理器控制檯中運行如下命令。

PM> Install-Package EntityFramework -Pre
相關文章
相關標籤/搜索