Files
FA_WEB/OrdersManagementDataModel/OrdersManagementDbContext.cs

70 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; }
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");
});
}
}