Ich habe einen einfachen Code zum Erstellen von SqlParameter für Table Valued Type. Der angegebene Code funktioniert gut mit .NET 4.0. Problem ist mit MONO CS (3.12.0), ich kann nicht einfach den gleichen Code in MONO kompilieren.Table Valued Parameter Problem mit MONO cs
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;
}
Mono Compiler mir diesen Fehler geben:
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)
Der angegebene Code einfach versucht, einen Parameter für TableValued Typ zu erstellen und Datentabelle auf SQL INSERT-Anweisung übergeben.
Ich weiß, dass der Fehler gelöst werden kann, wenn ich gespeicherte Prozedur verwende, aber in meinem Fall ist es nicht machbar, MERGE insert SP für jede einzelne Tabelle zu erstellen.
Also bitte helfen Sie mir, wenn es irgendeine Arbeit um dieses Problem gibt.
Hinweis: Es ist bekannt, dass MONO System.Data.SqlClient.SqlParameter
keine TypeName
Eigenschaft besitzt. Wenn ich diese Eigenschaft entfernen dann kompiliert es in Ordnung, aber gibt Laufzeitfehler:
The table type parameter '@drFactory' must have a valid type name.