- Change feed: Fixed an issue causing an endless change notification for all documents under certain conditions (#200)
- Change feed: Fixed automatic resume at last change in continuous feed (#198)
- Find: Added support for fetching attachments with entire content (#194)
- 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)
- Queries: Fix when
In
is called insideAny
(#183) - Database split: Fix
FirstOrDefault
without filter queries (#185)
- Dependency Injection: Fix dependency injection packages references (#180)
- 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)
- Replication: Added replication methods in
ICouchDatabase
interface (#173) - Document ID: Support IDs with special characters (#172)
- Replication: Adds support to replication (#151)
- Attachments: Adds DownloadAttachmentAsStreamAsync (#152)
- IsMatch: Support multiline regex (#161)
- 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)
- 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)
- Views: Possibility to query multiple views at once. (#126) Thanks Panos
- Partitioned database: It's possible to create partitioned databases. (#122)
- Views:
CouchViewOptions
are serialized correctly when overriding the serializer. (#125) Thanks Panos - PropertyCaseType:
PropertyCaseType
is not applied on internal properties anymore. (#127)
- Table Splitting: Fix discriminator. (#120)
- Update to Flurl 3. There should be no differences for the end user, but keep in mind.
- Table Splitting: Ability to use the same database for different document with automatic filtering. (#106)
- Views: Ability to get views. Thanks to panoukos41
- Logical Expressions Prune: If expressions are constant booleans, they are removed automatically keeping the query valid. (#113)
- IsUpAsync: Returns false on timeout and on not successful codes. (#107)
- FindAsync: Faster when document is not found. (#92)
- Indexes": Ability to create indexes. (#102)
- Null values": New
SetNullValueHandling
method forCouchOptionsBuilder
to set how to handle null values. (#101) - Query": New
Select
andConvert
methods to select specific fields.
- Conflicts: Fix the query parameter value to get conflicts. (#100)
- Query: Fix queries when variables are used. (#104)
- Users": Added
ChangeUserPassword
method forICouchDatabase<CouchUser>
.
- IsMatch: Back to public instead of internal;
- AddOrUpdate: Added
Async
postfix.
- Queries": Complete rewrite.
Async/await
operations are supported natively and so areCancellationTokens
; - Queries": Support for multiple
Where
calls; - Queries": Support for
Min
,Max
,Sum
,Average
,Any
,All
,Last
methods (async); - Changes Feed: Support for realtime document changes with
IAsyncEnumerable
; - Authentication: Support for
Proxy
andJTW
authentication; - CouchDatabase::
CouchDatabase
now implementsIQueryable
; - CouchDatabase::
NewRequest
method exposed; - CouchContext: New
CouchContext
class to have an experience similar to EF Core; - Dependency Injection: New NuGet package to help with DI;
- Local Documents: New
LocalDocuments
property inCouchDatabase
; - Generic:
ICouchClient
andICouchDatabase
interfaces introduced; - Generic:
async
methods supportCancellationTokens
; - Builds: Build definition move to YAML files.
- Settings:
CouchSettings
replaced withCouchOptions
andCouchOptionsBuilder
; - Queries: Methods that cannot be converted to queries throw exceptions;
- CouchDatabase:
GetDatabase
doesn't create the DB if not found anymore. UseGetOrCreateDatabaseAsync
instead; - CouchDatabase: Create, CreateOrUpdate and Delete documents are renamed to Add, AddOrUpdate and Remove.
- FindMany: Fix crash when document does not exist.
- JSON content: Fix issue with purge_seq from into to string.
- JSON content: Fix issue with JSON content as a value. (#PR59)
- Attachments: Adds support for attachments. (#PR56)
- Database: Fixing special characters escaping in databases names. (#PR54)
- Queries: Fixing enums serialized as string instead of int bug. (#PR49)
- Exception: Fixing null reference exception and poor exception handling. (#PR45)
- Client: Prevent deadlocks when run against .NET Framework. (#PR43)
- Single/SingleOrDefault: Methods implementated as composite supported methods (Where and Take(2)).
- Queries: Implicit bools in nested methods. (#PR41)
- FxCopAnalyzers: Removed from NuGet dependencies.
- _find: IQueryable methods that are not supported by CouchDB are evaluated in-memory using the IEnumerable counterpart, if possible.
- _find: Boolean member expressions converted to binary expressions in Where (Fix #PR36).
- Everywhere: Flurl JSON serialization based on CouchSettings' PropertyCaseType.
- CouchClient: add FindManyAsync(ids) (#PR33).
- CouchClient: add QueryAsync(someMangoJson) (#PR32).
- CouchClient: add QueryAsync(someMangoObject) (b4dd1b2).
- _find: removed T : IComparable from In() and Contains() methods (#PR31).
- _find: fix single element array queries. (#PR34).
- _find: from r.prop.FieldExists() to r.FieldExists("someprop").
- CouchClient: implements protected virtual void Dispose(bool disposing).
- Global: FxCop analizers add to the project.
- _find: Guid support, and all other constants (#PR26)
Enjoy! 🎈