Ich versuche, eine Teradata-Datenbank dynamisch mit Dapper abzufragen, habe jedoch einige Probleme. Hier ist der Code:
// model variable is the parameter passed in with search information
using (IDbConnection con = new TdConnection(connection.GetConnectionString()))
{
var builder = new SqlBuilder();
var selector = builder.AddTemplate($"SELECT * FROM Temp_Table /**where**/");
if (model.Id != 0)
{
builder.Where("Id = ?", new { model.Id });
}
if (!string.IsNullOrEmpty(model.Employee_Id))
{
builder.Where("Employee_Id = ?", new { model.Employee_Id });
}
var data= con.Query<TableModel>(selector.RawSql, model).ToList();
return data;
}
Der Fehler, den ich erhalte, ist:
[Teradata Database] [3939] Die Anzahl der angegebenen Parameter und die Anzahl der erforderlichen Parameter stimmen nicht überein.
Ich habe sehr ähnlichen Code für die Abfrage von DB2 verwendet, der einwandfrei funktioniert hat. Was muss ich mit Teradata anders machen?
Es geschafft, es herauszufinden. Die Zeile zum Abrufen der Daten wurde folgendermaßen geändert:
var data= con.Query<TableModel>(selector.RawSql, selector.Parameters).ToList();
Nicht sicher, warum das Übergeben des Modells in meiner DB2-Version einwandfrei funktioniert hat, jedoch nicht in dieser Teradata-Version.