Я использую ASP. NET Core Entity Framework и хотел бы вызвать простую хранимую процедуру.
Я создал хранимую процедуру в своих миграциях следующим образом:
public partial class spGetAvailableCourses : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
var sp = @"CREATE PROCEDURE [dbo].[GetAvailableCourses]
AS
BEGIN
SELECT COUNT(courses.Enrolled) FROM Courses WHERE Courses.Capacity > Courses.Enrolled;
END";
migrationBuilder.Sql(sp);
}
Я могу вызвать хранимую процедуру на SQL сервере с помощью следующей команды.
EXEC dbo.GetAvailableCourses
Но когда я пытаюсь вызвать процедуру хранения в моем ICourseRepository. Не работает. Я получаю минус один. Может кто-нибудь, пожалуйста, скажите мне, как правильно вызвать хранимую процедуру. Спасибо
public class CourseRepository:ICourseRepository
{
private readonly DataContext _context;
public CourseRepository(DataContext context)
{
_context = context;
}
public Task<CoursesAvailableCount> CoursesAvailableCount()
{
var ss = _context.Database.ExecuteSqlRaw("GetAvailableCourses");
return null;
}
Тоже пробовал
public async Task<CoursesAvailableCount> CoursesAvailableCount()
{
var s = await _context.Database.ExecuteSqlCommandAsync("GetAvailableCourses");
}