Hej, podczas tworzenia prostej strony która ma za zadanie wyświetlić z bazy danych liste filmów.
Ale po kompilacji wyskakuje błąd:
InvalidOperationException: Unable to resolve service for type 'Filmoteka.Repositiores.IFilmRepositiores' while attempting to activate 'Filmoteka.Controllers.HomeController'.
public class HomeController : Controller
{
private readonly IFilmRepositiores _filmotekaRepositiores;
public HomeController(IFilmRepositiores filmotekaRepositiores)
{
_filmotekaRepositiores = filmotekaRepositiores;
}
// GET: HomeController
public ActionResult Index()
{
return View(_filmotekaRepositiores.GetFilms());
}
// GET: HomeController/Details/5
public ActionResult Details(int id)
{
return View(_filmotekaRepositiores.Get(1));
}
// GET: HomeController/Create
public ActionResult Create()
{
return View();
}
// POST: HomeController/Create
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(IFormCollection collection)
{
try
{
return RedirectToAction(nameof(Index));
}
catch
{
return View();
}
}
// GET: HomeController/Edit/5
public ActionResult Edit(int id)
{
return View(id);
}
// POST: HomeController/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, FilmModel film)
{
_filmotekaRepositiores.Update(id, film);
return RedirectToAction(nameof(Index));
}
// GET: HomeController/Delete/5
public ActionResult Delete(int id)
{
return View(id);
}
// POST: HomeController/Delete/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Delete(int id, IFormCollection collection)
{
_filmotekaRepositiores.Delate(id);
return RedirectToAction(nameof(Index));
}
public class FilmRepositiores : IFilmRepositiores
{
private readonly FilmotekaContext _context;
public FilmRepositiores(FilmotekaContext context)
{
_context = context;
}
public void Add(FilmModel film)
{
_context.films.Add(film);
_context.SaveChanges();
}
public void Delate(int id)
{
var result = _context.films.SingleOrDefault(x => x.FilmID == id);
if (result != null)
{
_context.films.Remove(result);
_context.SaveChanges();
}
}
public FilmModel Get(int id) => _context.films.SingleOrDefault(x => x.FilmID == id);
public IQueryable<FilmModel> GetFilms()
{
var films = from f in _context.films
select f;
return films;
}
public void Update(int id, FilmModel film)
{
var result = _context.films.SingleOrDefault(x => x.FilmID == id);
if (result != null)
{
result.origi_title = film.origi_title;
result.pol_title = film.pol_title;
result.year = film.year;
result.Description = film.Description;
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<FilmotekaContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("FilmotekaDatabase")));
}
public class FilmotekaContext : DbContext
{
public FilmotekaContext(DbContextOptions options) : base(options)
{
}
public DbSet<FilmModel> films { get; set; }
}
[Table("FilmsTable")]
public class FilmModel
{
[Key]
public int FilmID { get; set; }
[Required(ErrorMessage = "Pole jest wymagane")]
[DisplayName("Tytuł orginalny")]
[MaxLength(50)]
public string origi_title { get; set; }
[Required(ErrorMessage = "Pole jest wymagane")]
[DisplayName("Tytuł polski")]
[MaxLength(50)]
public string pol_title { get; set; }
[DisplayName("Rok")]
public DateTime year { get; set; }
[DisplayName("Opis")]
[MaxLength(200)]
public string Description { get; set; }
}
Pomoże ktoś?