Apps72.Dev.Data 4.0.0

This DatabaseCommand is a set of components helping C# developers to execute SQL Queries and to retrieve data from SQL Server, Oracle, SQLite, ... It is a light and pragmatic framework that contains only the essential classes needed to create SQL query strings, define parameters and transaction, and execute it to retrieve all data converted in typed objects.

There is a newer version of this package available.
See the version list below for details.
Install-Package Apps72.Dev.Data -Version 4.0.0
dotnet add package Apps72.Dev.Data --version 4.0.0
<PackageReference Include="Apps72.Dev.Data" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Apps72.Dev.Data --version 4.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

DatabaseCommand - Simple Object Mapping


Go to https://apps72.com to learn how to use DatabaseCommand.


Introduction

This C# library simplify SQL Queries to external databases, using the standard class DbConnection and DotNetCore.
Many implementations are compiled for SQL Server, Oracle Server or SQLite.

First, create a SqlConnection or an other DbConnection.

using (var cmd = new DatabaseCommand(mySqlConnection))
{
    cmd.CommandText = "SELECT ID, Name FROM EMployee";
    var all = cmd.ExecuteTable<Employee>();     // List of all employees
    var smith = cmd.ExecuteRow<Employee>();     // First employee
    var id = cmd.ExecuteScalar<int>();          // ID of first employee
    
    var emps = cmd.Query(" SELECT * FROM Employee WHERE ID > @ID ")
                  .AddParameter("@ID", 10)
                  .ExecuteTable<Employee>();
}

Requirements: Microsoft Framework 4.0 (Client Profile) for desktop applications, or SQL Server 2008 R2 for SQL CLR Stored procedures, or .NET Standard 2.0 for .NET Core library.

Basic Samples (video)

Samples

Performances

Performance is very important during development.
You can check these values by starting the Performance project in the source code.
Comparing to the famous projects Dapper and Entity Framework, you can see
that:

  • DatabaseCommand has identical performance when executing Scalar queries.
  • DatabaseCommand is slightly less efficient than Dapper (35%) but significantly more efficient than EFCore.

This slight reduction of performance is due to all additional features included in DatabaseCommand:
management of exceptions, Tags, Logs, ActionBeforeExecution and ActionAfterExecution events.

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18362
Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores

------------------------------------------------------------------------------
           Execute Scalar             |           Execute Table
------------------------------------------------------------------------------
Dapper            |  80.18 µs         | Dapper           | 103.88 µs	
DatabaseCommand   |  81.86 µs  +2%    | DatabaseCommand  | 141.68 µs  +36%
EF Core           | 342.05 µs  +327%  | EF Core          | 315.30 µs  +204%
------------------------------------------------------------------------------

DatabaseCommand - Simple Object Mapping


Go to https://apps72.com to learn how to use DatabaseCommand.


Introduction

This C# library simplify SQL Queries to external databases, using the standard class DbConnection and DotNetCore.
Many implementations are compiled for SQL Server, Oracle Server or SQLite.

First, create a SqlConnection or an other DbConnection.

using (var cmd = new DatabaseCommand(mySqlConnection))
{
    cmd.CommandText = "SELECT ID, Name FROM EMployee";
    var all = cmd.ExecuteTable<Employee>();     // List of all employees
    var smith = cmd.ExecuteRow<Employee>();     // First employee
    var id = cmd.ExecuteScalar<int>();          // ID of first employee
    
    var emps = cmd.Query(" SELECT * FROM Employee WHERE ID > @ID ")
                  .AddParameter("@ID", 10)
                  .ExecuteTable<Employee>();
}

Requirements: Microsoft Framework 4.0 (Client Profile) for desktop applications, or SQL Server 2008 R2 for SQL CLR Stored procedures, or .NET Standard 2.0 for .NET Core library.

Basic Samples (video)

Samples

Performances

Performance is very important during development.
You can check these values by starting the Performance project in the source code.
Comparing to the famous projects Dapper and Entity Framework, you can see
that:

  • DatabaseCommand has identical performance when executing Scalar queries.
  • DatabaseCommand is slightly less efficient than Dapper (35%) but significantly more efficient than EFCore.

This slight reduction of performance is due to all additional features included in DatabaseCommand:
management of exceptions, Tags, Logs, ActionBeforeExecution and ActionAfterExecution events.

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18362
Intel Core i7-7700HQ CPU 2.80GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores

------------------------------------------------------------------------------
           Execute Scalar             |           Execute Table
------------------------------------------------------------------------------
Dapper            |  80.18 µs         | Dapper           | 103.88 µs	
DatabaseCommand   |  81.86 µs  +2%    | DatabaseCommand  | 141.68 µs  +36%
EF Core           | 342.05 µs  +327%  | EF Core          | 315.30 µs  +204%
------------------------------------------------------------------------------

Release Notes

https://github.com/Apps72/Dev.Data#ReleaseNotes

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
4.2.4 128 10/7/2020
4.2.3 149 10/1/2020
4.2.2 84 9/23/2020
4.2.1 141 9/21/2020
4.2.0 89 9/18/2020
4.1.2 148 9/16/2020
4.1.1 325 3/18/2020
4.1.0 157 3/5/2020
4.0.2 223 1/15/2020
4.0.1 169 1/13/2020
4.0.0 160 12/29/2019
3.0.3 317 4/21/2019
3.0.2-rc2 210 3/28/2019
3.0.1-rc1 203 3/12/2019
3.0.1-beta 223 3/5/2019
2.7.5 396 8/9/2018
2.7.3 376 7/20/2018
2.6.0 485 6/14/2018
2.5.0 488 2/11/2018
2.4.0 457 8/27/2017
2.3.2 453 7/24/2017
2.3.1 445 7/4/2017
2.3.0 447 6/23/2017
2.3.0-beta 428 6/23/2017
2.1.0 553 12/17/2016
2.0.0 495 10/10/2016
1.5.2 630 3/30/2016
1.5.1 529 3/14/2016
1.5.0 529 3/14/2016
1.4.0 559 1/30/2016
1.3.0 718 1/4/2016
1.2.0 882 12/13/2015
Show less