/
d3h5
/
Unistream.TestTask
Обзор
Документация
Войти
/
d3h5
/
Unistream.TestTask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Unistream.TestTask.DataAccessImpl/DataContexts/ApplicationDbContext.cs
43 строки
2 KB
WORKSTATION-H\mrthe
Правки, отладка
03 июн 2025, 17:24
03 июн 2025, 17:24
012cad7
Код
Авторство
О чём код?
using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Unistream.TestTask.DataAccessImpl.DataContexts.Configurations; using Unistream.TestTask.DataAccessImpl.Interceptors; using Unistream.TestTask.DataAccessInterfaces.DataContexts.Entities; namespace Unistream.TestTask.DataAccessImpl.DataContexts; public class ApplicationDbContext : DbContext { private readonly IConfiguration _configuration; public const string DefaultSchema = "public"; public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options, IConfiguration configuration) : base(options) { _configuration = configuration; // Лечит ошибку "Cannot write DateTime with Kind=Local to PostgreSQL type 'timestamp with time zone', only UTC is supported." AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); } /// <inheritdoc/> public DbSet<TransactionEntity> Transactions { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { _ = modelBuilder.ApplyConfiguration(new TransactionEntityTypeConfiguration()); } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { _ = optionsBuilder.UseNpgsql(_configuration.GetConnectionString("Default"), o => o.MapEnum<Operation>("operation").MapEnum<Status>("status")) .AddInterceptors(new ForUpdateInterceptor()) .AddInterceptors(new ForUpdateSkipLockedInterceptor()) .EnableSensitiveDataLogging() .LogTo(Console.WriteLine, LogLevel.Debug); #if DEBUG _ = optionsBuilder.EnableSensitiveDataLogging(); #endif } }