equadrat.Framework.Data.SQLite.Provider (8.3.0-prerelease-00007)

Published 2026-01-28 22:29:57 +01:00 by frederik.engelhardt

Installation

dotnet nuget add source --name equadrat-oss --username your_username --password your_token 
dotnet add package --source equadrat-oss --version 8.3.0-prerelease-00007 equadrat.Framework.Data.SQLite.Provider

About this package

A framework to extend the Microsoft .net framework with extra data functionality.

equadrat Framework Data

The idea of the equadrat Framework is to provide APIs to build applications with an architecture of highly decoupled components. Every single component, aspect or pattern is represented by interfaces. The framework provides a standard implementation for these but each type can be replaced by a custom implementation.

The framework is not about reimplementing components, but making them available using common interfaces.

Getting started

You can use most of the components by simply instantiating them. This is maybe the easiest way to evaluate the framework.

If you're using an IOC/DI container such as Microsoft Extensions DependencyInjection or if you want to use the built-in IOC framework, you can use the bootstrapper and bootstrapper modules to register the framework to the IOC.

Usage

public static void Main(string[] args)
{
    var builder = Host.CreateApplicationBuilder(args);

    // Use the module registry to register bootstrapper modules. Usually each assembly has its own bootstrapper module.
    // This will add their service declarations to the IServiceCollection.
    // This requires equadrat.Framework.Core.Microsoft.Extensions.Hosting NuGet package.
    builder.Services.RegisterBootstrapperModules(moduleRegistry => moduleRegistry.DataFramework().RegisterBaseModule());

    // Declare other services as usual.
    // builder.Services.AddSingleton<...>(...);

    var app = builder.Build();

    // Optional: initialize all services declared by the registered bootstrapper modules. Calling this method is required for all environments which doesn't support IHostedService, such es browsers/webassembly.
    app.Services.InitBootstrapperModules();

    app.Run();
}

Have a look at the example applications on equadrat.net and in the wiki.

Interesting components

This is a list of some (not all) components of the framework which might be interesting for you.

Database

  • IDataDbContextIOCCacheFactory (pooling of Entity Framework DbContext instances)
  • IDataDbOperator
    • DataDbOperatorIOCResolver
    • DataMSSqlDbOperator
    • DataPostgreSqlDbOperator
    • DataSQLiteDbOperator
  • IDataLocalDbAccessor
  • IDataLocalDbAccessorProvider

Model mappers

  • IDataModelMapperFactory
    • IDataModelAutoMapperFactory (uses AutoMapper)
    • IDataModelMapperConfigurationRegistry (internal mapper without external dependencies)
    • IDataModelMapsterFactory (uses Mapster)
    • IDataModelMapperIOCResolverFactory (uses IOC for registered mappers)
  • IDataModelMapperProvider (access to the mappers provided by any registered mapper factory)

Compatibility

The plan is to keep the equadrat Framework compatible to these .net versions as long as possible.

.net version min max automated tests*
Core 3.1 ≥ 10.x yes
Standard 2.0 ≥ 2.1 no
Framework 4.6.2 ≥ 4.8.x no

*The automated tests run under Linux for .net Core 6.x and above.

Version scheme and breaking changes

Version change Scope
Major Overhaul of the project
Minor Some types have changed
Revision Fully backward compatible
Build Set in preview versions only

Additional documentation

You can find some guides regarding specific features on my website: www.equadrat.net

Feedback

You can contact me on my website: www.equadrat.net

License

Please respect the license and check equadrat.Framework.Data.License.md before using the package.

Release notes

v8.3.0

  • Removed .net Framework versions (v4.x) from target frameworks.

v8.2.0

  • Added support for .net 10.

v8.1.5

  • Compatibility release

v8.1.4

  • Fixed bug of configurable data model mappers when implicit mappings handled nullable-values as default value.
  • Added logic to configurable data model mappers to skip implicit mappings if there are conditional explicit mappings.
  • Added IncludeDebugView method to specify that a configurable data model mapper shall include a debug view.

v8.1.3

  • Fixed bug to identify the correct constructor for configurable data model mappers when using included configurations.
  • Fixed bug to use implicit overloaded mappings for configurable data model mappers when using included configurations.

v8.1.2

  • Fixed implicit data model mappings to ignore members with special names, such as compiler generated fields.
  • Extended scope of implicit data model mappings to include base classes and implemented interfaces.

v8.1.1

  • Reverted Microsoft.Data.SqlClient from v6.1.0 back to v6.0.2.
  • Fixed bugs in configurable data model mappers.

v8.1.0

  • Added configurable (IDataModelMapperConfigurationRegistry) data model mapper.

v8.0.0

  • Compatibility release

v7.6.0

  • Updated NuGet package references.

v7.5.2

  • Fixed access level of DataFrameworkMapsterBootstrapperModuleExtensions.

v7.5.1

  • Added data model mapper support for Mapster.
  • Updated NuGet package references.

v7.5.0

  • Added database operators for PostgreSQL and SQLite.
  • Moved DataTableInstancePool from MSQL project to base project.
  • Updated NuGet package references.

v7.4.0

  • Compatibility release

v7.3.0

  • Added support for .net 9.
  • Updated NuGet package references.

v7.2.2

  • Changed DataMemberDateOnlyValueConverter.SqlDbType to DateTime (instead of Date).

v7.2.1

  • Implemented support to specify DbType, SqlDbType and custom data converter using DataMemberMappingAttribute.

v7.2.0

  • Compatibility release

v7.1.0

  • Compatibility release

v7.0.1

  • Maintenance release

v7.0.0

  • Initial Release

Dependencies

ID Version Target Framework
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 .NETStandard2.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 .NETStandard2.0
equadrat.Framework.Data 8.3.0-prerelease-00007 .NETStandard2.0
Microsoft.Bcl.AsyncInterfaces 10.0.2 .NETStandard2.0
Microsoft.Data.Sqlite.Core 10.0.2 .NETStandard2.0
SQLitePCLRaw.bundle_e_sqlite3 [2.1.11, 3.0.0) .NETStandard2.0
equadrat.Framework.Core 8.3.0 .NETStandard2.0
equadrat.Framework.Core.Interfaces 8.3.0 .NETStandard2.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 .NETStandard2.1
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 .NETStandard2.1
equadrat.Framework.Data 8.3.0-prerelease-00007 .NETStandard2.1
Microsoft.Bcl.AsyncInterfaces 10.0.2 .NETStandard2.1
Microsoft.Data.Sqlite.Core 10.0.2 .NETStandard2.1
SQLitePCLRaw.bundle_e_sqlite3 [2.1.11, 3.0.0) .NETStandard2.1
equadrat.Framework.Core 8.3.0 .NETStandard2.1
equadrat.Framework.Core.Interfaces 8.3.0 .NETStandard2.1
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net10.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net10.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net10.0
Microsoft.Data.Sqlite.Core 10.0.2 net10.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net10.0
equadrat.Framework.Core 8.3.0 net10.0
equadrat.Framework.Core.Interfaces 8.3.0 net10.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net5.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net5.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net5.0
Microsoft.Data.Sqlite.Core 10.0.2 net5.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net5.0
equadrat.Framework.Core 8.3.0 net5.0
equadrat.Framework.Core.Interfaces 8.3.0 net5.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net6.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net6.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net6.0
Microsoft.Data.Sqlite.Core 10.0.2 net6.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net6.0
equadrat.Framework.Core 8.3.0 net6.0
equadrat.Framework.Core.Interfaces 8.3.0 net6.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net7.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net7.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net7.0
Microsoft.Data.Sqlite.Core 10.0.2 net7.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net7.0
equadrat.Framework.Core 8.3.0 net7.0
equadrat.Framework.Core.Interfaces 8.3.0 net7.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net8.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net8.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net8.0
Microsoft.Data.Sqlite.Core 10.0.2 net8.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net8.0
equadrat.Framework.Core 8.3.0 net8.0
equadrat.Framework.Core.Interfaces 8.3.0 net8.0
equadrat.Framework.Data.SQLite 8.3.0-prerelease-00007 net9.0
equadrat.Framework.Data.Interfaces 8.3.0-prerelease-00007 net9.0
equadrat.Framework.Data 8.3.0-prerelease-00007 net9.0
Microsoft.Data.Sqlite.Core 10.0.2 net9.0
SQLitePCLRaw.bundle_e_sqlite3 3.0.2 net9.0
equadrat.Framework.Core 8.3.0 net9.0
equadrat.Framework.Core.Interfaces 8.3.0 net9.0