-
Notifications
You must be signed in to change notification settings - Fork 302
Release Notes
Adam Schroder edited this page Dec 29, 2023
·
22 revisions
- Async cancellation tokens through out
- Async Open/Close/BeginTran/AbortTran for netstandard 2.1 & net8
- NPoco.Abstractions package
- Only change data type for rows on their first iteration #684
- Add changeable default ForceToUtc flag on PocoColumn #655
- Allow certain types to not participate in IEnumerable expansion #636
- Add support for Mappers in Linq queries for Where clauses
https://github.com/schotime/NPoco/wiki/Upgrading-to-V5
- Add exact column name matching which doesn't remove underscores to match column names #351
- Adds SQL Server command formatting for easy copy & paste #429
- Escape table name for sql bulk copy #451
- Use MemberInfoKey in BulkInsert to support complex properties #609
- Add ability to have multi parameter less constructors and default values will be provided to initialise #602
- Add missing where expression to First method #598
- Create netstandard2.1 targets
- Fix async and parent child mappings #569
- Implement FetchMultipleAsync and change to using ValueTuples #460
- Support private properties #414
- Implement SaveAsync methods #415
- Map strings to Guids automatically
- Fix custom mapper being called twice #439
- Use aliases for queries if they exist #557
- Infer the Include property based on the generic type parameter for one-to-one and foreign references
- Adding BulkCopyTimeout parameter to BulkInsert #563
- Add Linq support for DateTime.Year etc #484
- Fix parameter escaping for MySql as per #492
- Add concurrency checking to deletes #567
- Ability to use Tuples as parameters using the @item1, @Item2 etc names
- Add ValueTupleMapper #358 from @asztal
- Refactor IAsyncDatabase instances and implement BulkInsertAsync
- Add transient error retry hooks for SQL Server
- Implement IAsyncEnumerables
- Add missing where expression to First method #598
- Add support for KeepIdentity in Bulk Insert
- Add support for .netstandard 2.0
- Update fastJSON to 2.1.34
- Add new IAsyncDatabase interface
- Add new Async methods
- Add UpdateBatch and UpdateBatchAsync
- Allow AnsiString value to be null fixes #539
- Add comments for SqlBuilder.AddClause method
- Add INeedDatabase interface for query providers so extension methods can be done
- Fix bug where hooks weren't getting called for async inserts
- Update SqlBuilder to ReuseParameters if required
- Add support for Trim(), TrimStart() and TrimEnd()
- Rename Sql Where overloads to WhereSql to avoid intellisense conflicts
- Throw error if setting AutoIncrement to true when PrimaryKey is a composite key
- Fixed exception when assigning value to a nullable primary key #404
- Escape Firebird identifiers using double quotes
- Add validation for page and itemsPerPage variables #456
- Add support for nested dictionary mapping
- Allow chained where clauses in linq provider. fixes #447
- Fix SqlBuilder with multiple clauses
- Fix issue when combining a linq where with a sql string where. fixes #428
- Add async methods for First, FirstOrDefault, Single and SingleOrDefault. fixes #406
- Update System.Data.SqlClient to 4.4.0. fixes #425
- Add Distinct Async #400
- Support where statements in VB.net #408
- Fix where clauses in linq statements fixes #409
- Fix conversion bug #407
- Add extra UpdateAsync method for fields to IDatabase interface. fixes #389
- Add bitwise support in linq expressions. fixes #384
- Improve handling of multiple attributes. #376
- FluentMappingOverrides should override complex prefix. Fixes #388
- Ensure the async helper methods are awaited. Fixes #361
- Implement ObjectValue as a concept (wiki to come)
- Fix parameter reuse to include IN statements. fixes #405
- Fix mapping to structs
- Fix ForceToUtc on attribute mapping to be true by default
- Add extra UpdateAsync method for fields to IDatabase interface #389
- Add bitwise support in linq expressions. fixes #384
- Improve handling of multiple attributes. #376
- FluentMappingOverrides should override complex prefix. Fixes #388
- Make AddTypeMap public
- ToListAsync with IncludeMany now fixed
- Fix ParameterHelper to reuse parameters if they were reused in original query
- Support the nullable HasValue when used with another binary expression
- Rename variable reader to values on delegate
- Fix 'in' query with ParameterHelper when list is empty
- Mapping perf: Use GetValues once per row rather than GetValue each per field.
- Change FastJsonColumnSerializer to render a Guid as a string by default
- Add CommandType as a parameter to Execute and ExecuteScalar
- Remove DbFactoryProvider overload when passing in a raw DbConnection
- Upgrade to .net core 1.0
- Checks if the column starts with "npoco_" case insensitive. (#298) (@imasm)
- Fix Async support in Firebird (#297)
- Add ability to insert base/abstract base class
- Ensure value type fields can be mapped to
- Do not include Result columns when using include in the query provider
- Add constructor overloads to SerializedColumn attribute for column name
- Implement SqlOfTContext (@zpqrtbnk)
- Update to .NET Core RC2
- Add separate NPoco.JsonNet package and use fastJSON internally by default
- Fix issue with using First() or FirstOrDefault() in Include statement
- Support Npgsql 3.x with parameter names
- Add XML comments to IDatabase
- Add support to map to "get" only properties in c# 6
- Add JSON.NET internally for serialized column
- Breaking changes and more info listed: Version 3
- Many internals rewritten
- Initial work to support .NET Core
- Add interceptors instead of having to use inheritance
- Fix
Exists
call when using composite keys - Allow SQL Server to use output instead of scope_identity(). Property on SqlServerDatabaseType.
- Fix
FetchMultiple
after mapping to weak types broke it.
- Paging Regex supports more cases
- Fix snapshotter bug with nested objects
- SingleById should ignore EnableAutoSelect setting
- EnumMapper now throws a useful exception to indicate something went wrong
- Enums will automatically be mapped to strings if the column type is set to string
[ColumnType(typeof(string))]
- Add missing Version overload to fluent config builder
- Fix
IsNew<T>
for composite keys
- Fix LINQ queries with char columns
- SqlBuilder will put brackets around each call to Where()
- Add FetchBy back to IDatabase
- Set AnsiString in LINQ correctly so queries on a varchar column will use indexes
-
Save<T>
method now takes T parameter not object - Add Async methods for querying, updates, inserts and deletes
- PocoDataFactory only created once if not set manually
- Ability to map objects in non-generic way using
IEnumerable<object> Query(Type type, ...
method
- Add support for timestamp column
- Add base62 encoder to pass timestamp byte[] around
- Modify orderby RegEx to support nested subquery filters (much faster too)
- Allow named where statements in Sql Builder
(/**where(first)**/ sb.Where("first", "name = @0", "John"))
- Remove FetchBy (use
Query<T>
now) - Add Distinct to QueryProvider which can do a distinct projection
- Cache config per DatabaseFactory
- Fix enum parameters for in clauses
- Allow
Dictionary<string, object>
to be passed as first parameter for dynamic parameters (@andersjonsson)
- Fix issue with UpdateMany not finding the set columns
- Allow SqlParameters to be used in SqlBulkCopy
- Numerous LINQ fixes (!Contains, !x.Name.StartsWith, Substring, Projections, Constant Boolean Expressions)
- Add Firebird support
- Improve memory usage performance (@Shandem)
- Set MySql default transaction isolation level to IsolationLevel.RepeatableRead
- Move check for dynamic object to top of IsNew method
- Run mapper through primary key columns
- Make CreateCommand public (#116)
- Fix nullable enums in LINQ queries (#115)
- Add shortcut database method to update snapshotted pocos
- Fix FormatCommand with Null values
- Fix for issue #106
- Make SqlBulkCopyOptions available to BulkInsert helper
- Snapshotter supports private fields
- Add support for custom mapper in SqlBulkInsert
- Make dynamic queries use PocoExpando which is case insensitive
- Fix paging regex and include Version column on pococolumn
- Snapshot update columns with private setter
- Add Alias and Computed Attributes
- Remove the need to have property on Poco with AutoJoin
- Fix inherited type properties to emit the correct SQL
- Fix paging for non Sql Server and Oracle
- Optimize Exists to use count(*)
- Fix Paged queries in Postgres and add TableInfo to PocoColumn
- Fix OrderBy Descending
- Create Tests for Linq Provider
- Support self referencing joins to one level
- Add alias on TableInfo
- Cleanup building of sql
- Initial work on aliases
- Fix Enum parameters for columns stored as strings
- Add "returning" primary key
- Add Firebird database type
- Add multi-poco paging to interface
- Add multi-poco paging support
- Allow ColumnInfo to store Ignored columns
- Allow HasValue for nullable type in Where query
- Allow private constructor with snapshotter
- Allow SqlBuilder to make token replacement mandatory
- Make Transaction inherit from an interface
- Make In take an IEnumerable
- Add exception when mapping to poco with no parameterless constructor
- Fix for DbType.Time not working for SqlServer
- Fix Guid parameters
- Fix provider name for SQLite
- Allow sql expressions to be a bit more complex
- Handle error when nested object is null and nested nested object trying to be mapped to it
- Change Connection closing to only leave open if explicitly opened, otherise it will be closed for every command
- Remove ForceDateTimeToUtc from Database and moved to PocoColumn
- Make all On* methods protected
- Add Apache License V2
- Enable the SqlBulk helper to support glimpse connection and transactions
- Fix for where with empty list for in clause
- Fix bug with UpdateWhere doing a delete
- Fix underscore mapping and extensions
- Updated Update expression to use converter
- Added ability to update and delete with strong types
- Ensure DbColumnType is set with overrides
- Don't map to a property with only a getter
- Fix for mapping private properties on base types
- Allow mappings to be inherited
- Support new Oracle client (@smlynch)
- Fix closed connection when using bulk insert (@dustinhorne)
- Fix oracle paging (@smlynch)
- Insert, Update and Delete methods have been made virtual
- Conventions now use MemberInfo to support mapping to fields
- Fix OneToMany() bug when no many results returned
- Fix nullable enums
- Fix when mapping to a nullable
- Fix invalid cast when destination type is nullable
- Ability to map fields in addition to properties
- Don't map public readonly fields
- Fix bug with SqlBuilder and parameters
- Make paging more generic
- Only nested objects are mapped if at least one column is not null, otherwise null object is returned
- Fix null connection for SqlExpressions
- Allow dictionary to be passed as primary keys for composite keys
- Add FetchBy<> and FetchWhere<> so that basic Linq queries are possible
- DatabaseFactory is no longer static and must be set per instance of Database created.
- Added Insert/Update/Delete hooks