71 lines
2.5 KiB
C#
71 lines
2.5 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.Extensions.Configuration;
|
|
using OrdersManagementDataModel.Entities;
|
|
using TaskScheduler = OrdersManagementDataModel.Entities.TaskScheduler;
|
|
|
|
namespace OrdersManagementDataModel;
|
|
|
|
public class OrdersManagementDbContext : DbContext
|
|
{
|
|
public OrdersManagementDbContext(DbContextOptions<OrdersManagementDbContext> 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<TaskScheduler> TaskSchedulers { get; set; }
|
|
public DbSet<TaskSchedulerDetail> TaskSchedulerDetails { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
modelBuilder.Entity<TaskScheduler>(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<TaskSchedulerDetail>(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");
|
|
});
|
|
}
|
|
} |