свойство:

я есть простой код для создания SqlParameter для табличного типа. Данный код прекрасно работает с .NET 4.0. Проблема с MONO CS (3.12.0), я не могу просто скомпилировать тот же код в 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;
}

Моно-компилятор выдаёт мне эту ошибку:

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)

Данный код просто пытается создать параметр для TableValued Type и передать таблицу данных в оператор вставки SQL.

Я знаю, что ошибку можно устранить, если я использую хранимую процедуру, но в моем случае не представляется возможным создать MERGE insert SP для каждой таблицы.

Поэтому, пожалуйста, помогите мне, если есть какие-либо решения этой проблемы.

Примечание: известно, что МОНОSystem.Data.SqlClient.SqlParameter не имеетTypeName свойство. Если я удаляю это свойство, то оно прекрасно компилируется, но выдает ошибку времени выполнения:

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

Ответы на вопрос(1)

Ваш ответ на вопрос