Add full Markdown documentation set
This commit is contained in:
51
docs/stored-procedures.md
Normal file
51
docs/stored-procedures.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Stored Procedures
|
||||
|
||||
Stored procedure support is available through `db.Procedures` when `DynamicDatabaseOptions.SupportStoredProcedures` is enabled.
|
||||
|
||||
## Basic Invocation
|
||||
|
||||
```csharp
|
||||
var scalar = db.Procedures.sp_Exp_Scalar();
|
||||
var scalarTyped = db.Procedures.sp_Exp_Scalar<int>();
|
||||
```
|
||||
|
||||
## Input, Output, Return Parameters
|
||||
|
||||
Prefixes in argument names control parameter direction:
|
||||
|
||||
- `out_` for output
|
||||
- `ret_` for return value
|
||||
- `both_` for input/output
|
||||
|
||||
Example pattern:
|
||||
|
||||
```csharp
|
||||
var res = db.Procedures.sp_Exp_SomeInputAndOutput<
|
||||
string,
|
||||
MyProcResult>(
|
||||
Name: "G4g4r1n",
|
||||
out_Result: new DynamicSchemaColumn { Size = 256 },
|
||||
ret_Return: 0);
|
||||
```
|
||||
|
||||
## Nested Procedure Names
|
||||
|
||||
Dynamic member chaining builds qualified names:
|
||||
|
||||
```csharp
|
||||
var res = db.Procedures.dbo.reporting.MyProc();
|
||||
```
|
||||
|
||||
This resolves to `dbo.reporting.MyProc`.
|
||||
|
||||
## Result Mapping
|
||||
|
||||
If generic return types are provided, DynamORM attempts mapper-based projection into the target type.
|
||||
|
||||
If output parameters are present, result payload is assembled from:
|
||||
|
||||
- main scalar/resultset-derived value
|
||||
- output values
|
||||
- optional return value
|
||||
|
||||
The behavior is implemented in `DynamORM/DynamicProcedureInvoker.cs` and documented in XML examples in `DynamORM/DynamicDatabase.cs`.
|
||||
Reference in New Issue
Block a user