using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using OrdersManagementDataModel.Entities; using TaskScheduler = OrdersManagementDataModel.Entities.TaskScheduler; namespace OrdersManagementDataModel; public class OrdersManagementDbContext : DbContext { public OrdersManagementDbContext(DbContextOptions options) : base(options) { } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); var connectionString = configuration.GetConnectionString("OrdersManagementConnection"); optionsBuilder.UseSqlServer(connectionString, options => options.CommandTimeout(300)); } public DbSet TaskSchedulers { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(entity => { entity.HasKey(e => e.Id); entity.ToTable("TaskScheduler"); entity.Property(e => e.RowPointer).HasDefaultValueSql("newid()"); entity.Property(e => e.CreateDate).HasDefaultValueSql("getdate()"); entity.Property(e => e.ActiveFrom).HasDefaultValueSql("getdate()"); entity.Property(e => e.ActiveUntil).IsRequired(false); }); modelBuilder.Entity(entity => { entity.ToTable("TaskSchedulerDetails"); entity.HasKey(e => e.Id); entity.Property(e => e.Id).ValueGeneratedOnAdd(); entity.Property(e => e.RowPointer) .HasColumnName("RowPointer") .HasColumnType("uniqueidentifier") .HasDefaultValueSql("newid()"); entity.Property(e => e.FkTaskScheduler) .HasColumnName("FkTaskScheduler"); entity.Property(e => e.JobRunDate) .HasColumnName("JobRunDate") .HasDefaultValueSql("getdate()"); entity.Property(e => e.Log) .HasColumnName("Log") .HasColumnType("text"); entity.HasOne(d => d.TaskScheduler) .WithMany(p => p.TaskSchedulerDetails) .HasForeignKey(d => d.FkTaskScheduler) .HasConstraintName("FK_TaskSchedulerDetails_TaskScheduler"); }); } }