Skip to content

Releases: matteobortolazzo/couchdb-net

v4.1.0

15 Jun 14:14
c9dca87

Choose a tag to compare

4.1.0

Bugs

  • Find queries: _id and _rev fields from CouchDB _find responses are now correctly mapped to Id and Rev properties on result documents. Previously, these fields were silently dropped during deserialization. (#219, based on #218) Thanks @gchiappe
  • Active tasks: Fixed GetActiveTasksAsync() throwing InvalidOperationException at runtime due to UnixTimestampSecondsConverter type mismatch with ActiveTask.StartedOn/UpdatedOn properties (#219)
  • Changes feed: Fixed ReceiveStream() prematurely disposing the HTTP response content stream when using POST-based continuous change feed filters (#219)

Improvements

  • Extracted shared DocumentRewriter for _id/_rev property rewriting, used by both FindResultConverter and ReadItemResponseConverter

v4.0.0

11 Jan 17:59
1f2c4eb

Choose a tag to compare

V4 is almost a complete rewrite of the library.

In the effort to migrate away from Newtonsoft.Json in favour of System.Text.Json, I found myself rewriting large portions of the library and then wondering whether the structure still made sense.

The answer was no. Up to this point, the library was inspired by Entity Framework, but it made no sense because there was no change tracking.
So for this version, I decided a Cosmos SDK approach would suit better.

Finally, I chose a zero-dependency approach, removing Flurl and Humanizer dependencies.
Hence, all the following breaking changes.

Breaking Changes

General

  • Removed Dependency Injection packages
  • Removed CouchContext
  • Removed Newtonsoft.Json dependency in favour of System.Text.Json
  • Removed Flurl dependency
  • Removed Humanizer dependency
  • Remove Couch prefix from most classes
  • Removed CouchDocument, any class/record can now be used (Id and Rev are special and handled automatically)
  • CRUD operations accept dedicate options object instead of parameters
  • Internal serialisation is done via source-generated serializers for better performance, except for objects that deal with user-provided types (like query results)

Client

  • Changed CouchClient constructor parameters
  • Removed OptionsBuider
  • Renamed CouchOptions to CouchClientOptions
  • Authentication is now via CouchCredentials implementations
  • CouchOptions has now only four properties, and the others are not relevant anymore

Database

  • Removed reflection+humanizer-based naming conventions in favour of explicit names. Related methods are removed.
  • Removed database splitting (might be reintroduced later)
  • Renamed Database.FindAsync to Database.ReadItemAsync
  • Renamed Database.AddAsync to Database.CreateItemAsync
  • Renamed Database.RemoveAsync to Database.DeleteItemAsync
  • GetDetailedViewAsync
  • Replaced AddOrUpdateRangeAsync and DeleteRangeAsync with ExecuteBulkItemOperationsAsync
  • Added Database.UpdateItemAsync
  • Added Database.UpsertAttachmentAsync
  • Added Database.DeleteAttachmentAsync
  • Removed Database.AddOrUpdateAsync
  • Removed Database.GetDetailedViewAsync as GetViewAsync now returns all metadata
  • Changed Find/ReadItemAsync response to return a ReadItemResponse<T> to split the document from the metadata

Query

  • ThrowOnQueryWarning now defaults to true (use new With/WithoutQueryParam LINQ methods)
  • Removed ToCouchQueryAsync, replaced by ToListAsync
  • Changed ToListAsync to return a CouchList<T> instead of a List<T>

Attachments

  • Now returned in ReadItemResponse<T>
  • To add them during document creation, use CreateItemRequestOptions
  • To manage them, use Upsert/DeleteAttachmentAsync

Others

  • Removed ChangeUserPassword as it's just an update

v4.0.0-preview1

04 Jan 15:50
d8afb64

Choose a tag to compare

v4.0.0-preview1 Pre-release
Pre-release

Check V4 release notes

v3.7.0

03 Dec 15:46
1f418d4

Choose a tag to compare

3.7.0 (2025-12-03)

Features

  • Partitions: Add comprehensive support for partitions (#213)
  • Get/SetRevisionLimit: Added method to get the revision limit of a database (#202)
  • ThrowOnQueryWarning: Added option to throw exception on query warnings (#205)

Bugs

  • IncludeExecutionStats: Fixed deserialization exception (#204)
  • Local Docs: Fixed ID encoding (#206)

What's Changed

New Contributors

Full Changelog: v3.6.0...v3.7.0

v3.6.0

11 Mar 22:09
d39233c

Choose a tag to compare

Bugs

  • Change feed: Fixed automatic resume at last change in continuous feed (#198)

v3.4.0

20 Jun 23:02
7d1978d

Choose a tag to compare

Features

  • Database split: Configurable field for document discrimination (#150)
  • Find: Added all options and responses (#182)
  • Change feed: Adds support for database split (#187)
  • Replicas: Adds CreateTarget option (#189)

Bugs

  • Queries: Fix when In is called inside Any (#183)
  • Database split: Fix FirstOrDefault without filter queries (#185)

v3.3.1

20 Jun 22:45
9b55e16

Choose a tag to compare

Bug Fixes

  • Dependency Injection: Fix dependency injection packages references (#180)

v3.3.0

19 Oct 23:16
4a09408

Choose a tag to compare

Features

  • Bulk Delete: Adds support to replication (#171)
  • Revision Support: Support for revisions in add and update (#170)
  • Deleted Flag: Added deleted flag on document (#154)

Bug Fixes

  • Replication: Added replication methods in ICouchDatabase interface (#173)
  • Document ID: Support IDs with special characters (#172)

v3.2.0

03 Jul 12:25
3462a99

Choose a tag to compare

Features

  • Replication: Adds support to replication (#151)
  • Attachments: Adds DownloadAttachmentAsStreamAsync (#152)
  • IsMatch: Support multiline regex (#161)

Bug Fixes

  • ElementAt: Fixes query on .NET 6. (#156)
  • Attachments: Fixes attachments in FindAsync. (#159)
  • Attachments: Fixes attachments uploads (#159)
  • Attachments: Fixes Bad Request on attachment upload. (#164)
  • GetInfoAsync: Fixed 32-bit integer overflow. (#165)

v3.1.1

14 Oct 20:37
0c39973

Choose a tag to compare

Bug Fixes

  • Query: Fix First/Last with conditions fail. (#142)
  • Query: Fix First/Last on splitted database. (#136)
  • Query: Throws exception on List.Count instead of wrong query. (#138)
  • Query: Fix multi thread call issues. (#133)
  • FindManyAsync: Filters out null results. (#141) Thanks AlexandrSHad
  • Continuous Changes: Fix multi thread issues. (#140)