persistence/DD.Persistence.Database/RepositoriesCached/SchemePropertyCachedRepository.cs

31 lines
992 B
C#
Raw Normal View History

using DD.Persistence.Models;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Caching.Memory;
2025-02-05 17:20:18 +05:00
using DD.Persistence.Database.Repositories;
2025-02-05 17:20:18 +05:00
namespace DD.Persistence.Database.RepositoriesCached;
public class SchemePropertyCachedRepository : SchemePropertyRepository
{
private readonly IMemoryCache memoryCache;
2025-02-05 17:20:18 +05:00
public SchemePropertyCachedRepository(DbContext db, IMemoryCache memoryCache) : base(db)
{
this.memoryCache = memoryCache;
}
2025-02-05 17:20:18 +05:00
public override async Task AddRange(DataSchemeDto dataSourceSystemDto, CancellationToken token)
{
2025-02-05 17:20:18 +05:00
await base.AddRange(dataSourceSystemDto, token);
memoryCache.Set(dataSourceSystemDto.DiscriminatorId, dataSourceSystemDto);
}
2025-01-22 16:13:56 +05:00
public override async Task<DataSchemeDto?> Get(Guid discriminatorId, CancellationToken token)
{
var result = memoryCache.Get<DataSchemeDto>(discriminatorId)
2025-01-22 16:13:56 +05:00
?? await base.Get(discriminatorId, token);
return result;
}
}