aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/README.md
blob: 589b0a84136383af73eea2efb5ac631649d782bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# CRUD Technic Notes

## Overview

The ultimate CRUD scaffold finally comes.

## Database Pipeline

### Select

1. Create select `what`, where clause, order clause, `Offset` and `Limit`.
2. Check clauses' related columns are valid. Then generate sql string and param list.
3. Convert param list to `Dapper` dynamic params. Execute sql and get `dynamic`s.
4. Run hook `AfterSelect` for every column.
5. Convert `dynamic`s to `TEntity`s.

### Insert

1. Create insert clause consisting of insert items.
2. Check clauses' related columns are valid. Then generate sql string and param list.
3. Run hook `BeforeInsert` for every column.
4. Convert param list to `Dapper` dynamic params. Execute sql and return `KeyColumn` value.

### Update

1. Create update clause consisting of update items, where clause.
2. Check clauses' related columns are valid. Then generate sql string and param list.
3. Run hook `BeforeUpdate` for every column.
4. Convert param list to `Dapper` dynamic params. Execute sql and get count of affected rows.