Я пытаюсь узнать, как использовать C# с dapper, в основном для вызова функции postgreSQL. Я пытаюсь сопоставить столбец в наборе результатов со свойством класса.
Мой класс определяется как:
public class CourseUnit
{
public int unitId { get; set; }
public string description { get; set; }
}
Хранимая процедура вызывается, как показано в черновом списке ниже. Набор результатов хранимой процедуры содержит два столбца:
- UnitID
- UnitName
У меня возникают проблемы с отображением UnitName из хранимой процедуры в свойство description моего класса , Код вызывает процедуру и создает набор результатов со значениями для UnitID, но значения описания равны нулю. Как мне сопоставить UnitName со свойством description моего класса?
public async Task<IEnumerable<CourseUnit>> GetCourseUnitsAsync(int courseId)
{
using (var connection = new NpgsqlConnection(_connectionString))
{
connection.Open();
Console.WriteLine($"About to execute the course units query for course {courseId}");
try
{
var p = new DynamicParameters();
p.Add("@course_id", courseId);
var result = await connection.QueryAsync<CourseUnit>(@"coursemanagement.select_course_units",
p,
commandType: CommandType.StoredProcedure);
Console.WriteLine($"Total results of course units are {result.AsList().Count}");
return result;
}
catch(Exception)
{
throw new KeyNotFoundException($"No Units found for course {courseId}");
}
throw new KeyNotFoundException();
}
}
Я попытался вызвать хранимую процедуру следующим образом:
var result = await connection.QueryAsync<CourseUnit>(@"SELECT 'UnitID' as unitid, 'UnitName' as description FROM coursemanagement.select_course_units",
new { courseId });
Console.WriteLine($"Total results of course units are {result.AsList().Count}");
return result;
Однако я получил исключение =>
Exception encountered while retrieving course units 42P01: relation "coursemanagement.select_course_units" does not exist