User Defined Table Types - lobodava/artisan-orm GitHub Wiki

A user-defined table type is an MS SQL Server object that is used for sending data to a stored procedure as table-valued parameters.

For example:

-- TSQL

create type dbo.UserTableType as table
(
    Id	     int            not null    primary key clustered,
    [Login]  varchar(20)    not null    ,
    Name     nvarchar(50)   not null    ,
    Email    varchar(50)    not null
);

A variable of the user-defined table type can be passed to a stored procedure as a parameter.

-- TSQL

create procedure dbo.SaveUsers
    @Users dbo.UserTableType readonly
as
begin
    ...
end

ADO.NET can create a variable of the user-defined table type taking a DataTable as SqlDbType.Structured parameter within SqlCommand configuration.

In Artisan.Orm it looks like:

// C#

public void Save(IList<User> users)
{
    ExecuteCommand(cmd =>
    {
        cmd.UseProcedure("dbo.SaveUsers");
        cmd.AddTableParam("@Users", users);
    });
}

See also:

⚠️ **GitHub.com Fallback** ⚠️