Skip to content

Preview Release v7.1.0-preview2

Pre-release
Pre-release

Choose a tag to compare

@priyankatiwari08 priyankatiwari08 released this 10 Jul 15:48
90dda56

This update brings the following changes since the 7.1.0-preview1 release.

Package version alignment: The Microsoft.Data.SqlClient driver and its companion packages continue the aligned versioning introduced in 7.0.2. All five packages listed below ship together as 7.1.0-preview2. (Microsoft.SqlServer.Server continues to version independently and remains at 1.0.0.) Applications that reference Microsoft.Data.SqlClient.Extensions.Azure must upgrade it to 7.1.0-preview2 when upgrading Microsoft.Data.SqlClient.

Compatibility guarantee: All aligned assemblies ship with FileVersion 7.1.0.x and AssemblyVersion 7.0.0.0 — unchanged from 7.0.2 — so upgrading from 7.0.2 to 7.1.0-preview2 does not require any new .NET Framework strong-name binding redirects.

Packages in this release

Microsoft.Data.SqlClient 7.1.0-preview2

Added

  • SqlConnection.GetSchemaAsync overloads with CancellationToken support (#3005)
  • SQL Graph pseudo-column aliases ($node_id, $edge_id, $from_id, $to_id) accepted in SqlBulkCopy mappings (#3677)
  • SqlBatchCommand.CommandBehavior and SqlBatch.ExecuteReader(CommandBehavior) are now honored (#4125)
  • Configurable idle connection timeout via Connection Idle Timeout / SqlConnectionStringBuilder.IdleTimeout (opt-in via Switch.Microsoft.Data.SqlClient.UseLegacyIdleTimeoutBehavior=false) (#4295)

Changed

  • Connect Timeout now propagates through the pool when Switch.Microsoft.Data.SqlClient.UseOverallConnectTimeoutForPoolWait=true is set (default off; introduces a Microsoft.Bcl.TimeProvider dependency) (#4270)
  • SQL Server 2025 json type added to the DataTypes collection returned by SqlConnection.GetSchema (#3858)
  • Internal state-machine hardening via Interlocked.CompareExchange guards (#4267)
  • Internal cleanup of connection-options inheritance and related pool interfaces (#4237, #4261, #4235, #4415, #4334)
  • LCID hardcoded mappings to avoid repeated culture lookups (#4212)
  • Allocation reductions on SqlErrorCollection and null-return paths (#4157, #4099, #4102)
  • Improved EnclaveDiffieHellmanInfo.Size accuracy (#4346)
  • SqlVector<float> serialization is now explicitly little-endian for cross-architecture consistency (#3861)
  • Bundled .NET 10 SDK updated to 10.0.300 (#4287)

Fixed

  • NullReferenceException in SqlCommand.Cancel() when the connection has already been torn down (#4372)
  • Always Encrypted CMK signature verification incorrectly reusing cached results after a prior failure (#4339)
  • Missing TDS token / feature-ack length bounds checks (spoofing server could trigger unbounded allocations) (#4340)
  • SqlBulkCopy failing in least-privilege environments (#4306)
  • Always Encrypted CekMdVersion / EkValueCount reads aligned with the TDS specification (#4240)
  • LoginWithFailover parser-state validation (#4140)
  • SPN during login now uses the resolved port instead of instance name for Protocol=None / Protocol=Admin (#4180)
  • Race in SqlConnection.TryOpenInner that could surface as InvalidCastException now returns a deterministic InvalidOperationException (#4179)
  • Multiple CancellationTokenSource leaks in SqlDataReader, SqlConnection, SqlCommand reconnect paths, and sequential-stream helpers (#4009)
  • Docs fix for server certificate configuration (#4408)

Removed (breaking)

  • SQL Server 7.0 / 2000 code paths removed; Type System Version=SQL Server 2000 now throws ArgumentException at open. Applications should switch to Latest (or another supported value). No change to server-version support — 7.0 / 2000 were already rejected during login version negotiation. (#4015)

Full details: release-notes/7.1/7.1.0-preview2.md


Microsoft.Data.SqlClient.Extensions.Azure 7.1.0-preview2

Added — WAM (Windows Account Manager) broker support for Entra ID authentication (Windows only) (#4288, #4388)

  • Covers ActiveDirectoryIntegrated, ActiveDirectoryInteractive, ActiveDirectoryDeviceCodeFlow, and the deprecated ActiveDirectoryPassword modes.
  • New ActiveDirectoryAuthenticationProviderOptions type (UseWamBroker, ApplicationClientId, DeviceCodeFlowCallback) and a new ActiveDirectoryAuthenticationProvider(ActiveDirectoryAuthenticationProviderOptions) constructor overload.
  • New cross-platform SetParentActivityOrWindowFunc(Func<object>?) (supersedes the .NET-Framework-only SetIWin32WindowFunc).
  • New useWamBroker attribute on the <SqlClientAuthenticationProviders> configuration section.
  • Device Code Flow now uses its own token-lifetime timeout instead of inheriting Connect Timeout, fixing spurious "The operation was canceled." failures when users take longer to enter the code.
  • WAM is enabled by default when the driver's built-in client id is used; opt-in via UseWamBroker / the config attribute when a custom client id is supplied. Non-Windows platforms never invoke the broker.
  • Footprint note: WAM materially increases the on-disk footprint of Microsoft.Data.SqlClient.Extensions.Azure because it pulls in Microsoft.Identity.Client.Broker and its native OS-broker components. Tracking: #4410.
  • Sample: new AzureSqlConnector app under doc/apps/AzureSqlConnector.

Changed

  • Dependencies: added Microsoft.Identity.Client.Broker 4.84.2; updated Microsoft.Identity.Client to 4.84.2.

Full details: release-notes/Extensions/Azure/7.1/7.1.0-preview2.md


Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider 7.1.0-preview2

  • No functional or API changes; aligned version bump only.

Full details: release-notes/add-ons/AzureKeyVaultProvider/7.1/7.1.0-preview2.md


Microsoft.Data.SqlClient.Extensions.Abstractions 7.1.0-preview2

  • No functional or API changes; aligned version bump only.

Full details: release-notes/Extensions/Abstractions/7.1/7.1.0-preview2.md


Microsoft.Data.SqlClient.Internal.Logging 7.1.0-preview2

  • Internal-use-only package. No functional or API changes; aligned version bump only.

Full details: release-notes/Internal/Logging/7.1/7.1.0-preview2.md


Target Platforms

  • .NET Framework 4.6.2+ (Windows x86, x64, ARM64)
  • .NET 8.0+ (Windows x86, x64, ARM, ARM64; Linux; macOS)

Per-TFM dependency lists are in the linked release-notes files above.

Contributors

A huge thank you to our community contributors for this release: