refactor: use AsNoTracking for email template queries to improve performance
This commit is contained in:
@@ -14,13 +14,16 @@ internal sealed class EmailTemplateRepository : EfRepository<NotificationDbConte
|
||||
|
||||
public async Task<IReadOnlyList<EmailTemplate>> GetAllAsync(CancellationToken ct = default)
|
||||
{
|
||||
List<EmailTemplateEntity> entities = await DbSet.ToListAsync(ct);
|
||||
List<EmailTemplateEntity> entities = await DbSet
|
||||
.AsNoTracking()
|
||||
.ToListAsync(ct);
|
||||
return entities.Select(MapToDomain).ToList();
|
||||
}
|
||||
|
||||
public async Task<IReadOnlyList<EmailTemplate>> GetByServiceAsync(string serviceName, CancellationToken ct = default)
|
||||
{
|
||||
List<EmailTemplateEntity> entities = await DbSet
|
||||
.AsNoTracking()
|
||||
.Where(x => x.ServiceName == serviceName)
|
||||
.ToListAsync(ct);
|
||||
|
||||
@@ -29,8 +32,10 @@ internal sealed class EmailTemplateRepository : EfRepository<NotificationDbConte
|
||||
|
||||
public async Task<EmailTemplate?> GetAsync(string serviceName, string key, string languageCode, CancellationToken ct = default)
|
||||
{
|
||||
EmailTemplateEntity? entity = await DbSet.FirstOrDefaultAsync(
|
||||
x => x.ServiceName == serviceName && x.Key == key && x.LanguageCode == languageCode, ct);
|
||||
EmailTemplateEntity? entity = await DbSet
|
||||
.AsNoTracking()
|
||||
.FirstOrDefaultAsync(
|
||||
x => x.ServiceName == serviceName && x.Key == key && x.LanguageCode == languageCode, ct);
|
||||
|
||||
return entity is null ? null : MapToDomain(entity);
|
||||
}
|
||||
@@ -80,4 +85,4 @@ internal sealed class EmailTemplateRepository : EfRepository<NotificationDbConte
|
||||
Created = t.Created,
|
||||
Updated = t.Updated
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user