All Versions
Latest Version
Avg Release Cycle
178 days
Latest Release
1516 days ago

Changelog History

  • v7.0.0 Changes

    March 27, 2020

    MicroLite 7.0.0 contains a number of changes over 6.3.4:

    • ๐Ÿ— The library is now .NET 4.5 only, the .NET 3.5, 4.0 and 4.6 builds have been removed
    • โœ… The library is now using the .NET Standard project format, tests are now .NET 4.8 and xUnit 2.4.1
    • ๐Ÿ— Build is migrated to Azure DevOps YAML
    • ๐Ÿ’… Code style updated using .editorconfig and enforced via StyleCop
    • C# 7.3 language features (Expression bodied members, Pattern Matching, Throw expressions etc.)
    • โž• Added SecurityCodeScan and SonarAnalyzer.CSharp Roslyn analyzer packages to ensure code quality
    • ๐Ÿ’ฅ Breaking Change The API is now Async only, the IAsync..Session interfaces are removed and the I...Session interfaces now only contain the async methods
    • ๐Ÿ’ฅ Breaking Change SqlServer CE support removed

    The following issues have been resolved:

    • ๐Ÿ— #484 - Select builder adds extra parenthesis

    โฌ†๏ธ Upgrade Scenarios

    Using .NET 3.5 or 4.0

    Remain on MicroLite 6.3.4 until you can migrate to .NET 4.5 or later.

    Using SQL Server Compact Edition

    Remain on MicroLite 6.3.4 until you can migrate to an alternative database (e.g. SQLite).

    Using .NET 4.5 or later and not currently using Async sessions

    • โšก๏ธ Update to MicroLite 7.0
    • โšก๏ธ Update to use async versions of ISession/IReadOnlySession interfaces
    • e.g. var customer = session.Single(123); => var customer = await session.SingleAsync(123);

    Using .NET 4.5 or later and already using Async sessions

    • โšก๏ธ Update to MicroLite 7.0, find and replace:
      • IAsyncSession with ISession
      • IAsyncReadOnlySession with IReadOnlySession
      • IAdvancedAsyncSession with IAdvancedSession
      • IAdvancedAsyncReadOnlySession with IAdvancedReadOnlySession
      • OpenAsyncSession() with OpenSession()
      • OpenAsyncReadOnlySession() with OpenReadOnlySession()

    The following API changes exist MicroLite 6.3.4 to 7.0.0


    - public interface IAdvancedAsyncReadOnlySession- public interface IAdvancedAsyncSession- public interface IAsyncReadOnlySession- public interface IAsyncSession- public interface IHideObjectMethods


    - void ExecutePendingQueries();+ Task ExecutePendingQueriesAsync();+ Task ExecutePendingQueriesAsync(CancellationToken cancellationToken);


    - bool Delete(Type type, object identifier);- T ExecuteScalar\<T\>(SqlQuery sqlQuery);- bool Update(ObjectDelta objectDelta);+ Task\<bool\> DeleteAsync(Type type, object identifier);+ Task\<bool\> DeleteAsync(Type type, object identifier, CancellationToken cancellationToken);+ Task\<int\> ExecuteAsync(SqlQuery sqlQuery);+ Task\<int\> ExecuteAsync(SqlQuery sqlQuery, CancellationToken cancellationToken);+ Task\<T\> ExecuteScalarAsync\<T\>(SqlQuery sqlQuery);+ Task\<T\> ExecuteScalarAsync\<T\>(SqlQuery sqlQuery, CancellationToken cancellationToken);+ Task\<bool\> UpdateAsync(ObjectDelta objectDelta);+ Task\<bool\> UpdateAsync(ObjectDelta objectDelta, CancellationToken cancellationToken);


    - IList\<T\> Fetch\<T\>(SqlQuery sqlQuery);- PagedResult\<T\> Paged\<T\>(SqlQuery sqlQuery, PagingOptions pagingOptions);- T Single\<T\>(object identifier) where T : class, new();- T Single\<T\>(SqlQuery sqlQuery);+ Task\<IList\<T\>\> FetchAsync\<T\>(SqlQuery sqlQuery);+ Task\<IList\<T\>\> FetchAsync\<T\>(SqlQuery sqlQuery, CancellationToken cancellationToken);+ Task\<PagedResult\<T\>\> PagedAsync\<T\>(SqlQuery sqlQuery, PagingOptions pagingOptions);+ Task\<PagedResult\<T\>\> PagedAsync\<T\>(SqlQuery sqlQuery, PagingOptions pagingOptions, CancellationToken cancellationToken);+ Task\<T\> SingleAsync\<T\>(object identifier) where T : class, new();+ Task\<T\> SingleAsync\<T\>(object identifier, CancellationToken cancellationToken) where T : class, new();+ Task\<T\> SingleAsync\<T\>(SqlQuery sqlQuery);+ Task\<T\> SingleAsync\<T\>(SqlQuery sqlQuery, CancellationToken cancellationToken);


    - bool Delete(object instance);- void Insert(object instance);- bool Update(object instance);+ Task\<bool\> DeleteAsync(object instance);+ Task\<bool\> DeleteAsync(object instance, CancellationToken cancellationToken);+ Task InsertAsync(object instance);+ Task InsertAsync(object instance, CancellationToken cancellationToken);+ Task\<bool\> UpdateAsync(object instance);+ Task\<bool\> UpdateAsync(object instance, CancellationToken cancellationToken);


    - IAsyncReadOnlySession OpenAsyncReadOnlySession();- IAsyncReadOnlySession OpenAsyncReadOnlySession(ConnectionScope connectionScope);- IAsyncSession OpenAsyncSession();- IAsyncSession OpenAsyncSession(ConnectionScope connectionScope);

    ๐Ÿ”ง Configuration

    ๐Ÿ”ง ConfigurationExtensions

    - public static ICreateSessionFactory ForSqlServerCeConnection(this IConfigureConnection configureConnection, string connectionName)- public static ICreateSessionFactory ForSqlServerCeConnection(this IConfigureConnection configureConnection, string connectionName, string connectionString, string providerName)


    - public interface IHaveAsyncReadOnlySession- public interface IHaveAsyncSession


    - IReadOnlySession Session { get; set; }+ IReadOnlySession Session { get; }


    - ISession Session { get; set; }+ ISession Session { get; }

    view code changes

  • v6.3.4 Changes

    November 22, 2017

    MicroLite 6.3.4 contains a single change:

    • ๐Ÿ‘ #473 - TypeConverter.ResolveDbType doesnt support Nullable enum, but EnumTypeConverter does

    view code changes

  • v6.3.3 Changes

    July 06, 2017

    MicroLite 6.3.3 contains a single change:

    • #443 - Incorrect parameter numbers when using SqlUtility.RenumberParameters

    view code changes

  • v6.3.2 Changes

    September 17, 2016

    MicroLite 6.3.2 contains a single change:

    • #455 - Whole Process crashes with AccessViolationException when assigning a non-null value to a nullable Property while using ITypeConverter

    view code changes

  • v6.3.1 Changes

    September 04, 2016

    MicroLite 6.3.1 contains a single change:

    • 0๏ธโƒฃ #454 - IdentifierStrategyListener is not registered by default

    This meant that the identifier for a newly inserted record wasn't set on the inserted object.

    view code changes

  • v6.3.0 Changes

    August 30, 2016

    MicroLite 6.2.9 contains the following changes:

    • #422 - Add some helper convention mappings
    • 0๏ธโƒฃ #447 - Use DbType.DateTime2 as the default mapping for System.DateTime
    • #449 - Simplify the listener code
    • #450 - Setting DbType via Column Attribute results in a compilation error
    • #452 - Use DbType.Xml for XDocument

    โฌ†๏ธ For further information, see the Upgrading to MicroLite 6.3 Blog Post

    view code changes

  • v6.2.9 Changes

    March 22, 2016

    MicroLite 6.2.9 contains a couple of changes:

    • #442 - Query with large number of parameters errors when run as an include
    • #443 - Incorrect parameter numbers when using SqlUtility.RenumberParameters

    view code changes

  • v6.2.8 Changes

    December 08, 2015

    MicroLite 6.2.8 contains a couple of changes:

    • ๐Ÿ‘Œ Improved validation of ObjectInfo.SetIdentifierValue
    • Corrected resolution of table name from a generic class
    • #432 - When using dynamic paged results, the row number used for paging shouldn't be returned

    ๐Ÿš€ This release was supposed to be MicroLite 6.2.7, but I found a missing change for #432 which resulted in an exception

    view code changes

  • v6.2.7

    December 08, 2015
  • v6.2.6 Changes

    November 05, 2015

    MicroLite 6.2.6 contains a couple of improvements to the English Inflection Service which is used by the convention based mapping to pluralise class names (e.g. Customer -> Customers).

    The changes are mostly around words with an F in (e.g. Refund was being turned into Revesund instead of Refunds).

    view code changes