Второй день не могу решить проблему в проекте: Ошибка в запросах GET/POST.
При обработке запроса произошло необработанное исключение.
InvalidOperationException: невозможно разрешить службу для типа «RESTfull.Infrastructure.Interfaces.IStudentRepository» при попытке активации 'RESTfull.API.Controllers.StudentController'.
Буду очень благодарен, если поможете указать, где у меня ошибка!
В образовательных целях делаю приложения для учета посещаемости занятий
Решение состоит из трех проектов API, Домен, Инфраструктура.
Создал модель данных, настроил миграцию, она выполняется успешно и создает пока пустые таблицы (это видно через браузер объектов SQL)
Далее я начал разрабатывать репозитории, контроллеры и интерфейсы.
Начал с сущности «Студенты»
Создал файлы:
Студенческий репозиторий:
using Microsoft.EntityFrameworkCore;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Data;
using RESTfull.Infrastructure.Interfaces;
namespace RESTfull.Infrastructure.Repositories
{
public class StudentRepository : IStudentRepository
{
private readonly Context _context;
public StudentRepository(Context context)
{
_context = context;
}
public async Task GetAllStudentsAsync()
{
return await _context.Students.Include(s => s.Group).ToListAsync();
}
public async Task GetStudentByIdAsync(int studentId)
{
return await _context.Students.Include(s => s.Group).FirstOrDefaultAsync(s => s.StudentId == studentId);
}
public async Task AddStudentAsync(Student student)
{
_context.Students.Add(student);
await _context.SaveChangesAsync();
return student;
}
public async Task UpdateStudentAsync(Student student)
{
_context.Entry(student).State = EntityState.Modified;
await _context.SaveChangesAsync();
return student;
}
public async Task DeleteStudentAsync(int studentId)
{
var student = await _context.Students.FindAsync(studentId);
if (student == null)
{
return null;
}
_context.Students.Remove(student);
await _context.SaveChangesAsync();
return student;
}
}
}
Студентконтроллер:
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Interfaces;
using RESTfull.Infrastructure.Repositories;
namespace RESTfull.API.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class StudentController : ControllerBase
{
private readonly IStudentRepository _studentRepository;
public StudentController(IStudentRepository studentRepository)
{
_studentRepository = studentRepository;
}
[HttpGet]
public async Task GetStudents()
{
return await _studentRepository.GetAllStudentsAsync();
}
[HttpGet("{id}")]
public async Task GetStudent(int id)
{
var student = await _studentRepository.GetStudentByIdAsync(id);
if (student == null)
{
return NotFound();
}
return student;
}
[HttpPost]
public async Task PostStudent(Student student)
{
await _studentRepository.AddStudentAsync(student);
return CreatedAtAction("GetStudent", new { id = student.StudentId }, student);
}
[HttpPut("{id}")]
public async Task PutStudent(int id, Student student)
{
if (id != student.StudentId)
{
return BadRequest();
}
await _studentRepository.UpdateStudentAsync(student);
return NoContent();
}
[HttpDelete("{id}")]
public async Task DeleteStudent(int id)
{
var student = await _studentRepository.DeleteStudentAsync(id);
if (student == null)
{
return NotFound();
}
return NoContent();
}
}
}
IStudentRepository:
using System.Collections.Generic;
using System.Threading.Tasks;
using RESTfull.Domain.Model;
namespace RESTfull.Infrastructure.Interfaces
{
public interface IStudentRepository
{
Task GetAllStudentsAsync();
Task GetStudentByIdAsync(int studentId);
Task AddStudentAsync(Student student);
Task UpdateStudentAsync(Student student);
Task DeleteStudentAsync(int studentId);
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-attempti
InvalidOperationException: невозможно разрешить службу для типа '' при попытке активировать '' ⇐ C#
Место общения программистов C#
1735142228
Anonymous
Второй день не могу решить проблему в проекте: Ошибка в запросах GET/POST.
При обработке запроса произошло необработанное исключение.
InvalidOperationException: невозможно разрешить службу для типа «RESTfull.Infrastructure.Interfaces.IStudentRepository» при попытке активации 'RESTfull.API.Controllers.StudentController'.
Буду очень благодарен, если поможете указать, где у меня ошибка!
В образовательных целях делаю приложения для учета посещаемости занятий
Решение состоит из трех проектов API, Домен, Инфраструктура.
Создал модель данных, настроил миграцию, она выполняется успешно и создает пока пустые таблицы (это видно через браузер объектов SQL)
Далее я начал разрабатывать репозитории, контроллеры и интерфейсы.
Начал с сущности «Студенты»
Создал файлы:
Студенческий репозиторий:
using Microsoft.EntityFrameworkCore;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Data;
using RESTfull.Infrastructure.Interfaces;
namespace RESTfull.Infrastructure.Repositories
{
public class StudentRepository : IStudentRepository
{
private readonly Context _context;
public StudentRepository(Context context)
{
_context = context;
}
public async Task GetAllStudentsAsync()
{
return await _context.Students.Include(s => s.Group).ToListAsync();
}
public async Task GetStudentByIdAsync(int studentId)
{
return await _context.Students.Include(s => s.Group).FirstOrDefaultAsync(s => s.StudentId == studentId);
}
public async Task AddStudentAsync(Student student)
{
_context.Students.Add(student);
await _context.SaveChangesAsync();
return student;
}
public async Task UpdateStudentAsync(Student student)
{
_context.Entry(student).State = EntityState.Modified;
await _context.SaveChangesAsync();
return student;
}
public async Task DeleteStudentAsync(int studentId)
{
var student = await _context.Students.FindAsync(studentId);
if (student == null)
{
return null;
}
_context.Students.Remove(student);
await _context.SaveChangesAsync();
return student;
}
}
}
Студентконтроллер:
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using RESTfull.Domain.Model;
using RESTfull.Infrastructure.Interfaces;
using RESTfull.Infrastructure.Repositories;
namespace RESTfull.API.Controllers
{
[ApiController]
[Route("api/[controller]")]
public class StudentController : ControllerBase
{
private readonly IStudentRepository _studentRepository;
public StudentController(IStudentRepository studentRepository)
{
_studentRepository = studentRepository;
}
[HttpGet]
public async Task GetStudents()
{
return await _studentRepository.GetAllStudentsAsync();
}
[HttpGet("{id}")]
public async Task GetStudent(int id)
{
var student = await _studentRepository.GetStudentByIdAsync(id);
if (student == null)
{
return NotFound();
}
return student;
}
[HttpPost]
public async Task PostStudent(Student student)
{
await _studentRepository.AddStudentAsync(student);
return CreatedAtAction("GetStudent", new { id = student.StudentId }, student);
}
[HttpPut("{id}")]
public async Task PutStudent(int id, Student student)
{
if (id != student.StudentId)
{
return BadRequest();
}
await _studentRepository.UpdateStudentAsync(student);
return NoContent();
}
[HttpDelete("{id}")]
public async Task DeleteStudent(int id)
{
var student = await _studentRepository.DeleteStudentAsync(id);
if (student == null)
{
return NotFound();
}
return NoContent();
}
}
}
IStudentRepository:
using System.Collections.Generic;
using System.Threading.Tasks;
using RESTfull.Domain.Model;
namespace RESTfull.Infrastructure.Interfaces
{
public interface IStudentRepository
{
Task GetAllStudentsAsync();
Task GetStudentByIdAsync(int studentId);
Task AddStudentAsync(Student student);
Task UpdateStudentAsync(Student student);
Task DeleteStudentAsync(int studentId);
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79307923/invalidoperationexception-unable-to-resolve-service-for-type-while-attempti[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия