using KLHZ.Trader.Core.DataLayer.Entities.Declisions; using KLHZ.Trader.Core.DataLayer.Entities.Prices; using KLHZ.Trader.Core.DataLayer.Entities.Trades; using Microsoft.EntityFrameworkCore; namespace KLHZ.Trader.Core.DataLayer { public class TraderDbContext : DbContext { public DbSet Trades { get; set; } public DbSet Declisions { get; set; } public DbSet PriceChanges { get; set; } public DbSet Candles { get; set; } public TraderDbContext(DbContextOptions options) : base(options) { } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.UseSerialColumns(); modelBuilder.Entity(entity => { entity.HasKey(e1 => e1.Id); entity.Property(e => e.BoughtAt) .HasConversion( v => v.ToUniversalTime(), v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); }); modelBuilder.Entity(entity => { entity.HasKey(e1 => e1.Id); entity.Property(e => e.Time) .HasConversion( v => v.ToUniversalTime(), v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); }); modelBuilder.Entity(entity => { entity.HasKey(e1 => e1.Id); entity.Ignore(e1 => e1.IsHistoricalData); entity.Property(e => e.Time) .HasConversion( v => v.ToUniversalTime(), v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); }); modelBuilder.Entity(entity => { entity.HasKey(e1 => new { e1.Figi, e1.Time }); entity.Ignore(e1 => e1.IsHistoricalData); entity.Property(e => e.Time) .HasConversion( v => v.ToUniversalTime(), v => DateTime.SpecifyKind(v, DateTimeKind.Utc)); }); } } }