Problema com parâmetros de tabela com MONO cs
Eu tenho um código simples para criar SqlParameter para Table Valued Type. O código fornecido funciona bem com o .NET 4.0. O problema está no MONO CS (3.12.0), não posso simplesmente compilar o mesmo código no MONO.
static SqlParameter GetDataTableParam(string _tableName, DataTable _dt)
{
SqlParameter tValue = new SqlParameter();
tValue.ParameterName = "@dr" + _tableName; //@drFactory
tValue.SqlDbType = SqlDbType.Structured;
tValue.Value = _dt;
tValue.TypeName = string.Format("dbo.{0}Item", _tableName); //MONO CS is giving error at this line
return tValue;
}
Compilador mono que me dá este erro:
Error CS1061: Type `System.Data.SqlClient.SqlParameter' does not contain a definition for `TypeName' and no extension method `TypeName' of type `System.Data.SqlClient.SqlParameter' could be found. Are you missing an assembly reference? (CS1061)
O código fornecido está simplesmente tentando criar um parâmetro para TableValued Type e passar a tabela de dados para a instrução de inserção SQL.
Sei que o erro pode ser resolvido se eu usar o procedimento armazenado, mas, no meu caso, não é possível criar MERGE insert SP para cada tabela.
Portanto, ajude-me se houver alguma solução alternativa para esse problema.
Nota: Sabe-se que o MONOSystem.Data.SqlClient.SqlParameter
não temTypeName
propriedade. Se eu remover essa propriedade, ela será compilada, mas ocorrerá um erro em tempo de execução:
The table type parameter '@drFactory' must have a valid type name.