Creating data services
In the real world, we will probably continue with creating an interface
as a descriptor of the methods available in our services. However, for the purpose of this book, the approach without interfaces will be better, as it will lower the amount of code needed to run the application, without any drawbacks. If we need to use interfaces in the future, we can generate them using Visual Studio refactoring tools at any time.
The first service class that we will create will be a generic BaseService
class that will handle all our database communication:
Services/BaseService.cs
using AutoMapper; using MediaLibrary.Server.Data; using MediaLibrary.Shared.Model; using Microsoft.EntityFrameworkCore; namespace MediaLibrary.Server.Services; public abstract class BaseService<TEntity, TModel> where TEntity : BaseEntity where TModel : IModel, new() { private readonly MediaLibraryDbContext _dbContext...