This is the general availability release for the 3.7.0 version of the driver.
The main new features in 3.7.0 include:
- CSHARP-3124: OpenTelemetry implementation
- CSHARP-5736: Expose atClusterTime parameter in snapshot sessions
- CSHARP-5805: Add support for server selection's deprioritized servers to all topologies
- CSHARP-5712: WithTransaction API retries too frequently
- CSHARP-5836: Support new Reverse with array overload introduced by .NET 10
- CSHARP-4566: Support filters comparing nullable numeric or char field to constant
- CSHARP-5606: Support ConvertChecked as well as Convert
Improvements:
- CSHARP-5841: Rewrite $elemMatch with $or referencing implied element due to server limitations
- CSHARP-5572: Implement new SerializerFinder
- CSHARP-5861: Use ConnectAsync in synchronous code-path to avoid dead-locks
- CSHARP-5876: Convert some disposer classes to structs
- CSHARP-5889: Optimize comparison with nullable constant translation
- CSHARP-5890: Avoid byte array allocations writing Int64, Double, Decimal128 in ByteBufferStream
- CSHARP-5888: Optimize CommandEventHelper to avoid redundant message decoding
Fixes:
- CSHARP-5564: Enum with ushort underlying type is not serialized correctly
- CSHARP-5654: String.IndexOf comparisons to -1 return incorrect results
- CSHARP-5866: Avoid raising ClusterDescriptionChangedEvent on unchanged DNS records update
- CSHARP-5850: Use of an untranslatable property reference in a LINQ expression should be executed client-side
- CSHARP-5863: The built-in
IPAddressSerializerthrows when usingIPAddress.Any, etc - CSHARP-5877: Fix First/Last field path in GroupBy optimizer when source is wrapped
- CSHARP-5894: Deadlock during concurrent BsonClassMap initialization
The full list of issues resolved in this release is available at CSHARP JIRA project.
Documentation on the .NET driver can be found here.