Skip to content
Adam Schroder edited this page May 24, 2019 · 24 revisions

4.0.0

  • 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

3.9.4

  • Add support for nested dictionary mapping

3.9.3

  • Allow chained where clauses in linq provider. fixes #447

3.9.2

  • Fix SqlBuilder with multiple clauses

3.9.1

  • Fix issue when combining a linq where with a sql string where. fixes #428

3.9.0

  • Add async methods for First, FirstOrDefault, Single and SingleOrDefault. fixes #406
  • Update System.Data.SqlClient to 4.4.0. fixes #425

3.8.0

  • Add Distinct Async #400
  • Support where statements in VB.net #408

3.7.2

  • Fix where clauses in linq statements fixes #409

3.7.1

  • Fix conversion bug #407

3.7.0

  • 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

3.6.0

  • 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

3.5.1

  • 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.

3.4.1

  • 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)

3.3

  • 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

3.2

  • 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

3.1

  • Add JSON.NET internally for serialized column

3.0

  • 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

2.10.11

  • 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.

2.10.9

  • 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 for composite keys

2.9.103

  • 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 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 Query(Type type, ... method

    2.7.93

    • 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 now)
    • Add Distinct to QueryProvider which can do a distinct projection
    • Cache config per DatabaseFactory
    • Fix enum parameters for in clauses
    • Allow Dictionary to be passed as first parameter for dynamic parameters (@andersjonsson)

    2.6.88

    • 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)

    2.5.77

    • Add Firebird support
    • Improve memory usage performance (@Shandem)
    • Set MySql default transaction isolation level to IsolationLevel.RepeatableRead

    2.4.72

    • Move check for dynamic object to top of IsNew method
    • Run mapper through primary key columns

    2.4.71

    • Make CreateCommand public (#116)
    • Fix nullable enums in LINQ queries (#115)

    2.4.69

    • 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

    2.2.40

    • 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

    2.1.30

    • Allow mappings to be inherited
    • Support new Oracle client (@smlynch)
    • Fix closed connection when using bulk insert (@dustinhorne)
    • Fix oracle paging (@smlynch)

    2.1.27

    • 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

    2.1.24-beta

    • Fix invalid cast when destination type is nullable

    2.1.21-beta

    • Ability to map fields in addition to properties
    • Don't map public readonly fields
    • Fix bug with SqlBuilder and parameters
    • Make paging more generic

    2.0.18

    • Only nested objects are mapped if at least one column is not null, otherwise null object is returned
    • Fix null connection for SqlExpressions

    2.0.15

    • 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

    Clone this wiki locally