Pase el valor de la tabla param al procedimiento almacenado usando PetaPoco

Mientras estoy intentando llamar al procedimiento almacenado de SQL Server 2008 R2 utilizando PetaPoco.

Mi procedimiento almacenado acepta un parámetro de tabla de valores.

¿Cómo puedo llamar al procedimiento almacenado en petapoco con el valor de tabla param?

Aquí lo que estoy tratando de hacer:

var db = new PetaPoco.Database("repikaciskaBaza");

DataTable table = new DataTable();
DataColumn id = table.Columns.Add("id", type: typeof(Int32));

for (int i = 0; i < 10;i++ )
{
    DataRow row = table.NewRow();
    row["id"] = i;
    table.Rows.Add(row);
}

var param = new SqlParameter();
param.DbType = DbType.Object;
param.ParameterName = "@art_id";

param.SqlValue = table;

var lista = db.Query<pocoArts>(";exec dbo.test_sporc_param @0", param);

Este código me da una excepción:

La secuencia del protocolo de llamada a procedimiento remoto (RPC) del flujo de datos tabular (TDS) entrante es incorrecta.
Parámetro 3 ("@ 0"): el tipo de datos 0x62 (sql_variant) tiene un tipo no válido para metadatos específicos del tipo.

Si configuro el valor de parametariedad

param.SqlDbType = SqlDbType.Structured;

Entonces me sale una excepción como

The table type parameter '@0' must have a valid type name.

Cuando defino mi param como

            param.SqlDbType = SqlDbType.Structured;
            param.SqlValue = table;
            param.ParameterName = "@art_id";
            param.TypeName = SqlDbType.Structured.ToString();

Entonces me sale la excepción

Columna, parámetro o variable @ 0. : No se puede encontrar el tipo de datos Estructurado.

Como puedo definirSqlParam con la tabla param parametrizada para que pueda enviarla con datos a SQL Server?

Solución:

var param = new SqlParameter();
param.SqlDbType = SqlDbType.Structured; // According to marc_s
param.SqlValue = table; 
param.ParameterName = "@art_id";
param.TypeName = "dbo.typ_art_id"; // this is TYP from SQL Server database it needs to be equal to type defined in SQL Server not type of param

Respuestas a la pregunta(1)

Su respuesta a la pregunta