#146 Les méthodes Find(id) des repository utilisent SingleOrDefault. Les méthodes find du repository sont utilisées dans les méthodes update au lieu de refaire une requête. Paginate est remplacé par Find[Model] pour correspondre au cahier des charges.
This commit is contained in:
@@ -78,7 +78,7 @@ namespace Webzine.Repository
|
||||
{
|
||||
Artiste artiste = this.context.Artistes
|
||||
.Include(a => a.Titres)
|
||||
.FirstOrDefault(a => a.IdArtiste == id);
|
||||
.SingleOrDefault(a => a.IdArtiste == id);
|
||||
return artiste;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -112,11 +112,12 @@ namespace Webzine.Repository
|
||||
try
|
||||
{
|
||||
// .AsNoTracking() rend la requête beaucoup plus rapide pour de la lecture
|
||||
// Pas besoin de faire un ToList() ici, car on retourne un IEnumerable<Artiste> et EF Core gère l'exécution différée de la requête.
|
||||
var artistes = this.context.Artistes
|
||||
.AsNoTracking()
|
||||
.Include(t => t.Titres)
|
||||
.ToList();
|
||||
this.logger.LogDebug("{Count} artistes récupérés de la base.", artistes.Count);
|
||||
.Include(t => t.Titres);
|
||||
|
||||
this.logger.LogDebug("La liste d'artistes a été récupérée de la base.");
|
||||
return artistes;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -131,6 +132,13 @@ namespace Webzine.Repository
|
||||
{
|
||||
try
|
||||
{
|
||||
Artiste existingArtiste = this.Find(artiste.IdArtiste); // Vérifie que l'artiste existe avant de tenter de le mettre à jour
|
||||
if (existingArtiste == null)
|
||||
{
|
||||
this.logger.LogWarning("L'artiste {Id} n'a pas été trouvé pour l'update.", artiste.IdArtiste);
|
||||
throw new InvalidOperationException($"L'artiste avec l'ID {artiste.IdArtiste} n'a pas été trouvé pour la mise à jour.");
|
||||
}
|
||||
|
||||
this.context.Artistes.Update(artiste);
|
||||
this.context.SaveChanges();
|
||||
this.logger.LogDebug("Artiste {Id} ({Nom}) mis à jour avec succès.", artiste.IdArtiste, artiste.Nom);
|
||||
@@ -159,8 +167,7 @@ namespace Webzine.Repository
|
||||
var artiste = this.context.Artistes
|
||||
.Where(a => a.Nom.ToLower().Contains(mot.ToLower()))
|
||||
.Include(t => t.Titres)
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
.AsNoTracking();
|
||||
return artiste;
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user