销售电话: 1-800-867-1380

操作方法:通过 WCF Data Services 连接 Azure SQL Database

更新时间: 2015年2月

WCF 数据服务(以前称为 ADO.NET Data Services)支持你创建实现基于具象状态传输 (REST) 的开放数据协议 (OData) 的数据服务。因为 OData 基于标准 Internet 协议,所以,可收发 HTTP 消息和分析 XML 的任何客户端应用程序都可以访问数据服务。此外,有许多客户端库,从而更容易地在不同应用程序平台上使用 OData 馈送。

WCF 数据服务 要求数据服务提供程序实现以便定义数据模型和提供对基础数据源的访问。通过使用 实体框架 提供程序,你可以为 Azure SQL Database 创建数据服务。有关如何使用 WCF 数据服务 的详细信息,请参阅 WCF Data Services 文档。

note备注
打开到 Azure SQL Database 的连接时,将连接超时值设置为 30 秒。

本主题说明如何创建基于 Azure SQL Database 的简单数据服务以及访问该数据服务的 Azure 应用程序。

若要执行此示例,你必须安装 Azure SDKAzure Tools for Microsoft Visual Studio。有关 Azure 的详细信息,请参阅 Azure SDK。你还必须使用 DSInit 实用工具初始化随 Azure 工具一起安装的 Development Storage 服务。Development Storage 必须仅初始化一次。有关详细信息,请参阅关于 Development Storage

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

    Warning警告
    你必须以管理员的身份运行 Visual Studio,才能使用 Azure Development Fabric。

  2. “项目类型”窗格中,选择“Web”。在“模板”窗格中,选择“ASP.NET Web 应用程序”。在“名称”中输入 SchoolApplication,然后单击“确定”

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

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

  5. “实体数据模型向导”中,选择“从数据库生成”,然后单击“下一步”

  6. 单击“新建连接”,输入你的 Azure SQL Database 服务器上的 School 数据库的信息,然后单击“确定”。选择“否,从连接字符串中排除敏感数据。我将在自己的应用程序代码中设置这些数据。”选项。然后,单击“下一步”

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

    Caution注意
    若要在 Visual Studio 2010 或更高版本中执行此示例,请清除“确定所生成对象名称的单复数形式”复选框。在 Visual Studio 2008 中运行此示例时,实体框架不能从 Azure SQL Database 中创建 .edmx 文件和相关的客户端类。它必须连接到 SQL Server 的本地实例才能生成该模型和映射文件。不过,在创建该模型和映射文件后,实体框架将连接到 Microsoft Azure SQL Database。

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

  2. 选择“WCF Data Service”,在“名称”中输入 SchoolDataService.svc,然后单击“添加”

  3. 在 SchoolDataService.svc.cs 或 SchoolDataService.svc.vb 中,使用作为数据模型的实体容器的类型(在此为 /* TODO: put your data source class name here */)替换在定义数据服务的类的定义中的注释 SchoolEntities。该类定义应如下所示:

  4. 用下面的代码(授予对 InitializeServiceCourseDepartment 实体的访问权限)替换 Person 函数中的占位符代码。

  1. “解决方案资源管理器”中,右键单击该解决方案,指向“添加”,然后单击“新建项目”

  2. “添加新项目”对话框的“项目类型”窗格中,选择“云服务”。为“名称”键入 SchoolSite,然后单击“确定”

  3. “新建云服务项目”对话框中,将“ASP.NET Web 角色”添加到“云服务解决方案”窗格中,然后单击“确定”

  4. 使用下面的代码替换 Default.aspx 中的源代码:

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1">
        <div>
        
            <asp:DropDownList ID="peopleList" runat="server" 
                onselectedindexchanged="peopleList_SelectedIndexChanged"
        AutoPostBack="True">
            </asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="infoLabel" runat="server"></asp:Label>
            <br />
            
        
        </div>
        </form>
    </body>
    </html>
    

    这将创建一个名为 peopleList 的下拉列表和一个名为 infoLabelLabel 控件。

  5. 按 F6 以生成应用程序。

  6. “解决方案资源管理器”中,右键单击 Web 角色项目,然后单击“添加服务引用…”

  7. “添加服务引用”对话框中,单击“发现”。SchoolDataService.svc 将显示在“服务”窗格中。为“名称”键入 SchoolServiceReference,然后单击“确定”。这将会添加包含访问数据服务资源的数据类的文件。

  1. Default.aspx.csDefault.aspx.vb 中,添加以下 using 语句(在 Visual Basic 为 Imports):

  2. 在分部类中,将 DataServiceContext 的以下声明和 URI 添加到数据服务中(该 URI 是之前在“添加服务引用”对话框的“地址”字段中显示的 URI):

  3. Page_Load 方法中,通过添加以下代码实例化该数据服务上下文,并使用该数据服务中的信息加载下拉列表:

  4. 在 Default.aspx 的设计视图中,双击该下拉列表以添加 peopleList_SelectedIndexChanged 事件。

  5. peopleList_SelectedIndexChanged 事件中,通过添加以下代码基于选定的人员填充 Label 控件:

  1. 将 School 数据库迁移到 Azure SQL Database。

  2. SchoolApplication 项目中,打开 Web.config 文件。更改连接字符串,以便它连接到你的 Azure SQL Database。

  3. “解决方案资源管理器”中,右键单击 WebRole1 项目并选择“设置为启动项目”

  4. 按 F5 运行该应用程序。

另请参阅

本文是否对您有所帮助?
(1500 个剩余字符)
感谢您的反馈
显示:
© 2015 Microsoft