添加与 Azure SQL 数据库的连接

在 Visual Studio 中,通过使用连接的服务功能可将以下任何项连接到 Azure SQL 数据库:

  • .NET Framework 控制台应用
  • ASP.NET 模型-视图-控制器 (MVC) (.NET Framework)
  • ASP.NET Core
  • .NET Core(包括控制台应用、WPF、Windows 窗体、类库)
  • .NET Core 辅助角色
  • Azure Functions
  • 通用 Windows 平台应用
  • Xamarin
  • Cordova

连接服务功能可将所有需要的引用和连接代码添加到项目,并相应地修改配置文件。

注意

本主题适用于 Visual Studio Windows 版。 有关 Visual Studio for Mac,请参阅 Visual Studio for Mac 中连接服务

先决条件

使用连接的服务连接到 Azure SQL 数据库

  1. 在 Visual Studio 中打开项目。

  2. 解决方案资源管理器中,右键单击连接的服务节点,并在上下文菜单中选择添加,打开可用服务的菜单。

    Screenshot showing Connected Services context menu options.

  3. 选择 SQL Server 数据库。 随即显示连接到依赖项页。 应会看到多个选项:

    • SQL Server Express LocalDB,随 Visual Studio 一起安装的内置 SQL 数据库产品/服务
    • 计算机上的本地容器中的 SQL Server 数据库
    • SQL Server 数据库,本地网络上的本地 SQL Server
    • Azure SQL 数据库,用于作为 Azure 服务来运行的 SQL 数据库

    可以从本地数据库开始降低成本并简化早期开发。 稍后可以通过重复执行这些步骤并选择另一个选项,迁移到 Azure 中的实时服务。 如果在本地创建要在 Azure 中重新创建的数据库,则可在此时将数据库迁移到 Azure。

    Screenshot showing SQL Database choices.

    如果要连接到 Azure 服务,请继续执行下一步;如果尚未登录,请先登录到 Azure 帐户,然后再继续。 如果没有 Azure 帐户,可以注册免费试用版

  4. 配置 Azure SQL 数据库屏幕中,选择现有 Azure SQL 数据库,然后选择下一步

    如果需要创建新组件,请转到下一步。 否则,请跳到步骤 7。

    Screenshot showing

  5. 若要创建 Azure SQL 数据库,请执行以下操作:

    1. 选择绿色加号旁边的新建

    2. 填写 Azure SQL 数据库: 新建屏幕,然后选择创建

      Screenshot showing

    3. 当显示配置 Azure SQL 数据库屏幕时,新数据库将出现在列表中。 在列表中选择新数据库,并选择下一步

  6. 输入连接字符串名称或选择默认值,然后选择是希望连接字符串存储在本地机密文件中,还是存储在 Azure Key Vault 中。

    Screenshot showing

  7. 更改摘要屏幕显示了在完成该过程后将对项目进行的所有修改。 如果更改看起来正常,请选择完成

    Screenshot showing

    如果系统提示设置防火墙规则,请选择

    Screenshot showing firewall rules.

  8. 在“解决方案资源管理器”中,双击连接的服务节点以打开连接的服务选项卡。连接显示在服务依赖项部分下:

    Screenshot showing

    如果单击添加的依赖项旁边的三个点,可以看到各种选项(例如连接)以重新打开向导并更改连接。 还可以单击窗口右上角的三个点,查看用于启动本地依赖项、更改设置等的选项。

访问连接字符串

了解如何按照在 ASP.NET Core 开发环境中安全存储应用机密安全存储机密。 具体而言,若要从机密存储中读取连接字符串,可以添加代码,如通过配置 API 读取机密中所示。 另请参阅 ASP.NET Core 中的依赖关系注入

实体框架迁移

在早期开发期间,使用本地数据存储可能很方便,但借助 Entity Framework Core,当你准备好迁移到云时,可以使用 Visual Studio 对实体框架迁移的支持来移动数据库,或者将更改与远程数据存储进行合并。 请参阅迁移概述

连接的服务选项卡上,可单击三个点来查找迁移命令,如以下屏幕截图所示:

Screenshot showing migration commands.

这里提供了命令用于创建新迁移、直接应用迁移或生成应用迁移的 SQL 脚本。

添加迁移

当引入数据模型更改时,你可以使用 Entity Framework Core 工具添加相应的迁移,该迁移在代码中描述使数据库架构保持同步所需的更新。Entity Framework Core 会将当前模型与旧模型的快照进行比较来确定差异,并生成迁移源文件。 这些文件会添加到项目中(通常在名为 Migrations 的文件夹中),并且可以像跟踪任何其他源文件一样,在项目的源代码管理中跟踪这些文件。

选择此选项时,系统会要求你提供表示要迁移的数据库架构的上下文类名称。

Screenshot showing adding an Entity Framework migration.

更新数据库

创建迁移后,可将其应用于数据库。 实体框架会使用迁移代码中指定的更改更新数据库和架构。 选择此选项时,系统会要求你提供表示要迁移的数据库架构的上下文类名称。

生成 SQL 脚本

建议通过生成 SQL 脚本,将迁移部署到生产数据库。 此策略的优点包括:

  • 可以检查 SQL 脚本的准确性;这一点很重要,因为将架构更改应用于生产数据库是一项可能导致数据丢失的潜在危险操作。
  • 在某些情况下,可以根据生产数据库的特定需求调整这些脚本。
  • SQL 脚本可以与部署技术结合使用,甚至可以在 CI 过程中生成。
  • SQL 脚本可以提供给 DBA,并且可以单独管理和存档。

使用此选项时,系统会询问数据库上下文类和脚本文件的位置。

Screenshot showing the Generate SQL script option.

在 SQL Server 对象资源管理器中打开

为了方便起见,此命令允许跳转到 SQL Server 对象资源管理器,让你能够查看表和其他数据库实体,并直接处理数据。 请参阅对象资源管理器

Screenshot showing SQL Server Object Explorer.

后续步骤

你可以继续学习 Azure SQL 数据库的快速入门,但无需从头开始,而是可以在设置初始连接后开始。 如果使用实体框架,可以从添加代码以连接到 Azure SQL 数据库开始。 如果使用 SqlClient 或 ADO.NET 数据类,可以从添加代码以连接到 Azure SQL 数据库开始。

你的代码不会与快速入门中使用的代码完全一致,快速入门使用另一种方式来获取连接字符串。 连接字符串是机密,它们按照 ASP.NET Core 开发中应用机密的安全存储中所述安全地进行存储。 具体而言,若要从机密存储中读取连接字符串,可以添加代码,如通过配置 API 读取机密中所示。 在 ASP.NET Core 项目中,连接的服务创建的连接字符串在配置对象中可用。 可以通过 WebApplicationBuilder 类的属性(在许多项目模板中为 builder)访问它,如以下示例所示:

var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];