Я новичок в ядре ASP. net и хочу создать веб-сайт MVC, который отображает данные учащихся и меняет их статус с внеклассного на новый, когда пользователь нажимает на статус изменения кнопка. Ниже приведены классы, таблица БД и SP.
Метод изменения статуса в контроллере:
public async Task<IActionResult> ChangeStatus(long? id)
{
if (id == null)
{
return NotFound();
}
var students = await _db.Students
.FirstOrDefaultAsync(m => m.Id == id);
if (students == null)
{
return NotFound();
}
var Id = new SqlParameter
{
ParameterName = "@Id",
SqlDbType = System.Data.SqlDbType.BigInt,
Direction = System.Data.ParameterDirection.Input,
Value = student.Id
};
_db.Students.FromSqlInterpolated($" EXECUTE [dbo].[usp_changeStatus] @Id = {Id}").AsEnumerable().FirstOrDefault();
await _db.SaveChangesAsync();
return View(student);
}
Класс модели:
public class Student
{
[Key]
public Int64 Id { get; set; }
public string Name { get; set; }
public string Address { get; set; }
public string Age { get; set; }
}
DBContext:
public DbSet<Student> Students{ get; set; }
В базе данных:
Таблица:
CREATE TABLE [dbo].[Students](
[Id] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](100) NOT NULL,
[Address] [nvarchar](100) NOT NULL,
[Age] [nvarchar](100) NOT NULL);
StoredProcedure:
Create PROCEDURE [dbo].[usp_changeStatus]
@Id bigint
AS
BEGIN
SET NOCOUNT ON;
update [dbo].[Students] set [Status] = 'New'
where Id = @Id;
END
Проблема: После нажатия кнопки изменения состояния запускается SP и статус изменен в таблице БД, но появляется ошибка на следующем рисунке: