导出 (0) 打印
全部展开

操作方法:使用 ADO.NET 实体框架连接到 Azure SQL Database

更新时间: 2014年11月

ADO.NET 实体框架通过对概念应用模型编程而不是直接针对关系存储架构编程,支持开发人员创建数据访问应用程序。

本主题介绍如何创建一个映射到 Microsoft Azure SQL Database 的简单概念模型并对该概念模型进行查询。以下 Visual C#/Visual Basic 示例针对表示 School 模型中的实体和关联的 CLR 对象创建了一个强类型查询,该查询返回 School 模型中的系名称。

若要完成此示例,你必须安装实体框架并在服务器上创建 School 示例数据库。若要创建 School 示例数据库,请参阅 Microsoft Azure SQL Database 入门并完成步骤 1 至 8。

  1. 在 Visual Studio 的“文件”菜单中,指向“新建”,再单击“项目”

  2. 在“新建项目”对话框中的“已安装的模板”列表内,选择“Visual Basic”或“Visual C#”,然后选择“控制台应用程序”。在“名称”中输入 SchoolApplicationEF,然后单击“确定”

  3. “解决方案资源管理器”中,右键单击“SchoolApplicationEF”,指向“添加”,然后选择“新建项”

  4. 选择“ADO.NET 实体数据模型”,在“名称”中输入 SchoolDataModel.edmx,然后单击“添加”

  5. 在“实体数据模型向导”中,选择“从数据库启动 EF 设计器”,然后单击“下一步”。

  6. 单击“新建连接”,在“选择数据源”对话框中选择“Microsoft SQL Server”,然后单击“继续”。

  7. 在“连接属性”对话框的“服务器名称”框中,输入服务器的完全限定名称。例如 z8ue9o20al.database.windows.net。

  8. 在“登录到服务器”框中,选择“使用 SQL Server 身份验证”,然后输入数据库管理员的凭据。例如,tester 或 tester@ z8ue9o20al.database.windows.net。

  9. 单击“测试连接”按钮以验证登录信息。

  10. 在“连接到数据库”框中,选择“选择或输入数据库名称”,然后从列表中选择 School 数据库。单击“确定”。

  11. “实体数据模型向导”中,选择“否,从连接字符串中排除敏感数据。我将在自己的应用程序代码中设置这些数据。”选项。然后,单击“下一步”

  12. 选择最新版本的实体框架,然后单击“下一步”。

  13. 选择“表”,然后单击“完成”。这将创建一个 .edmx 文件,该文件定义数据库中每个表的实体类型。

  14. 保存 SchoolDataModel.edmx 文件。

    note备注
    在 Visual Studio 2008 中运行此示例时,实体框架不能从 Azure SQL Database 中创建 .edmx 文件和相关的客户端类。它必须连接到 SQL Server 的本地实例才能生成该模型和映射文件。不过,在创建该模型和映射文件后,实体框架将连接到 Microsoft Azure SQL Database。此外,Visual Studio 2008 中没有“确定所生成对象名称的单复数形式”复选框。因此,你必须在以下代码示例中将 Departments 更新为 Department,并将 Courses 更新为 Course

  1. 将程序文件中的代码替换为以下代码。

    using System; using System.Collections.Generic; using System.Linq; using System.Text;  namespace SchoolApplicationEF { class Program {     private static SchoolEntities schoolContext;   static void Main(string[] args)     {         //Initialize the ObjectContext         using (schoolContext = new SchoolEntities())         {              // Define a query that returns all People             // objects ordered by last name.             var personQuery = from p in schoolContext.People.Include("Courses")                               orderby p.LastName                               select p;              Console.WriteLine("List of people: ");              try             {                     foreach (Person per in personQuery)                         Console.WriteLine("{0} {1}", per.FirstName, per.LastName);              }             catch (Exception ex)             {                     Console.WriteLine("An error occurred: " + ex.Message);             }         }          Console.WriteLine("Hit enter...");         Console.Read();       } } } 
    

  1. SchoolEFApplication 项目中,打开 App.Config 文件。更改连接字符串,以便它连接到你的 Azure SQL Database。

    <connectionStrings>     <add name="SchoolEntities" connectionString="metadata=res://*/SchoolDataModel.csdl|res://*/SchoolDataModel.ssdl|res://*/SchoolDataModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=<provideServerName>.database.windows.net;Initial Catalog=School;Integrated Security=False;User ID=<provideUserID>;Password=<providePassword>;MultipleActiveResultSets=True;Encrypt=True;TrustServerCertificate=False&quot;" providerName="System.Data.EntityClient"/> </connectionStrings>
    
  2. 按 F5 对你的 Azure SQL Database 运行该应用程序。控制台窗口将显示 School 数据库中所有人员的姓名。

另请参阅

显示:
© 2015 Microsoft