свойство:
я есть простой код для создания 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.