Files
DynamORM/docs/stored-procedures.md
2026-02-26 07:49:08 +01:00

1.2 KiB

Stored Procedures

Stored procedure support is available through db.Procedures when DynamicDatabaseOptions.SupportStoredProcedures is enabled.

Basic Invocation

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:

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:

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.