适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Azure Synapse Analytics
Microsoft Fabric 中的 SQL 数据库
应用程序使用驱动程序或数据提供者连接到 Microsoft SQL 产品。 许多应用程序还在驱动程序之上使用框架、对象关系映射器(ORM)或其他数据访问库。
- 驱动程序或提供商负责网络通信、认证、命令、事务、参数和结果。
- 框架或数据访问库使用驱动程序或提供者,并添加对象映射、查询生成、变更跟踪、迁移或与应用框架集成等功能。
先选择适合你语言和平台的司机或服务商。 然后,如果你的应用需要更高层次的编程模型,选择兼容的框架或库。 框架不能取代底层驱动。
对该驱动程序的支持和对该框架的支持是彼此独立的。 Microsoft 为驱动程序提供的支持不包括对使用该驱动程序的第三方框架的支持。
选择司机或服务提供商
下表列出了本文件中涵盖的主要驾驶员和服务提供者。 请查看支持操作系统、运行时版本、SQL产品、认证方法和功能的相关产品文档。
| 语言或平台 | 司机或提供者 | 所有权和支持 |
|---|---|---|
| .NET | Microsoft.Data.SqlClient | : 用于新 .NET 开发的 Microsoft 提供程序。 |
| C 和 C++ | Microsoft SQL Server ODBC 驱动程序 | Microsoft ODBC 驱动。 |
| C 和 C++ | 适用于 SQL Server 的 Microsoft OLE DB 驱动程序 | Microsoft OLE DB provider。 |
| Go | Go-MSSQLDB | 官方的 Microsoft Go 驱动,实现了标准database/sql接口。 |
| Java | 用于 SQL Server 的 Microsoft JDBC 驱动程序 | Microsoft JDBC 驱动。 |
| Node.js | 乏味 | 由社区支持的驱动程序。 Microsoft 为该项目做出了贡献,但该项目不提供 Microsoft 官方支持。 |
| PHP | 适用于 SQL Server 的 Microsoft PHP 驱动程序 | Microsoft SQLSRV 和 PDO_SQLSRV 扩展。 这些扩展使用适用于 SQL Server 的 Microsoft ODBC 驱动程序。 |
| Python | mssql-python | Microsoft Python 驱动程序。 |
| Ruby | TinyTDS | 社区支持的司机。 Ruby 和 TinyTDS 不支持Microsoft。 |
对于Apache Spark,使用内置的Spark JDBC数据源配合Microsoft JDBC Driver for SQL Server。 Microsoft SQL Spark 连接器已被归档,目前没有积极开发。
选择一个框架或数据访问库
下表列出了通过提供者、适配器或数据库方言支持Microsoft SQL产品的框架和数据访问库。 这个清单并不详尽。
| 语言 | 框架或库 | Microsoft SQL 集成 | 所有权和支持 |
|---|---|---|---|
| .NET | Entity Framework Core SQL Server提供者 | Microsoft.Data.SqlClient |
Entity Framework Core 中由 Microsoft 维护的提供程序。 |
| .NET | Entity Framework 6 SQL Server provider | Microsoft.Data.SqlClient |
适用于现有 Entity Framework 6 应用程序的 Microsoft 提供程序 |
| .NET | Dapper | 扩展了 ADO.NET DbConnection;与 Microsoft.Data.SqlClient 配合使用。 |
第三方微型 ORM。 |
| Go | GORM | go-mssqldb |
第三方 ORM。 链接文章展示了如何使用其Microsoft SQL方言。 |
| Go | SQLx | go-mssqldb |
用于扩展 database/sql 的第三方库,提供映射和查询辅助功能。 |
| Java | Hibernate ORM | 基于 JDBC 的 Microsoft SQL 方言;可与用于 SQL Server 的 Microsoft JDBC 驱动程序配合使用。 | 第三方ORM。 |
| Node.js 与TypeScript | Prisma ORM | 内置 sqlserver 服务商;Prisma 7 可以使用其 node-mssql 驱动适配器。 |
第三方ORM。 |
| Node.js 与TypeScript | Sequelize | 基于 Tedious 的 Microsoft SQL 方言。 | 第三方ORM。 |
| Node.js 与TypeScript | TypeORM | 基于 node-mssql 和 Tedious 的 Microsoft SQL 数据源 |
第三方ORM。 |
| PHP | Laravel Eloquent | 通过 SQLSRV 和 PDO_SQLSRV 建立 Microsoft SQL 连接。 | 第三方网页框架和开放式语言管理(ORM)。 |
| PHP | Doctrine DBAL 与 ORM | 通过 sqlsrv 或 pdo_sqlsrv 驱动程序连接 Microsoft SQL。 |
第三方数据库抽象层和 ORM。 |
| Python | MSSQL-django |
mssql-python 或 pyodbc(在 mssql-django 2.0 中)。 |
Microsoft Django 数据库后端。 |
| Python | SQLAlchemy | 这取决于所选的 Microsoft SQL 方言。 | 第三方工具包和 ORM。 请查看链接的集成指南及其版本要求。 |
| Ruby | Active Record SQL Server 适配器 | Microsoft 基于 TinyTDS 的 Ruby on Rails SQL 适配器。 | 由社区支持的适配器。 |
当你评估一个框架或库时:
- 确认其提供商、适配器或方言是否支持Microsoft SQL产品、认证方法及您的应用所需的功能。
- 检查框架的维护状态、发布策略和支持渠道。
- 对于连接问题,如有可能,请使用底层驱动重现该问题。 直接驱动重现有助于判断问题属于驱动因素还是更高层次框架。