A DAL layer implemented using Dapper
+ SqlKata
+ Slapper.AutoMapper
+ Dapper.ColumnMapper
. Most features will work with any database SqlKata
supports. But certain
features / APIs such as InsertAll
, UpdateAll
will only work with SQL Server
and MySQL
since that's what I used in my own code. If someone can add support for other databases such as Postgres
or Oracle
, feel free to make a PR.
IDbProvider
interface is a simple abstraction of a database's behavior such as creating the connection, maximum parameter count, when insert, how to retrieve the inserted id, etc. The UtcNowExpression
is used for columns that its value is an SQL
expression instead of an value passed by the caller, such as TimeCreated
, TimeUpdated
, etc. Please see SqlServerDbProvider
file for reference implementation.
I only created IDbProvider
implementation for SQL Server
and MySQL
. It's very easy to implement for other databases that SqlKata
supports.
The examples XUnit
test project uses SQL Server
sample database WorldWideImporters
. You can import the database by downloading the .bak
file from below link
You probably need to change the connection string if you install SQL Server
on a different machine or don't use Windows Authentication
for authentication
The examples project is in .NET 8.0 so you need to have the lataest version of Visual Studio 2022