Quindi, dire che ho un metodo di controllo
// GET: TimeEntries
[HttpGet("[action]")]
public IEnumerable<TimeEntryDTO> GetLast(int value)
{
return dal.GetLast(value);
}
E un metodo per il livello di accesso ai dati di (utilizzando AutoMapper per convertire TimeEntry in TimeEntryDTO)
public IEnumerable<TimeEntryDTO> GetLast(int value)
{
return db.TimeEntries.TakeLast(value).ProjectTo<TimeEntryDTO>();
}
La mia domanda è: devo fare questo e avere il DAL (Data Access Layer) restituire il DTO (Data Transfer Object) o dovrei avere il DAL restituire un IQuerable del modello EF e poi convertirlo in un DTO in il metodo del controller?
EDIT:
Dopo aver fatto qualche altra lettura, i DBset non sono esposti da un contesto EF, infatti, la superficie del repository? Quindi non vedresti mai il vero DAL vero, perché è uno strato all'interno di EF? Quindi non dovrei chiamare un layer che si trova in cima al contesto EF, un DAL?