85 lines
4.0 KiB
C#
85 lines
4.0 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using PSTW_CentralSystem.Models; // Add this to use the MarineTarball class
|
|
|
|
namespace PSTW_CentralSystem.DBContext
|
|
{
|
|
public class MMSSystemContext : DbContext
|
|
{
|
|
public MMSSystemContext(DbContextOptions<MMSSystemContext> options) : base(options)
|
|
{
|
|
}
|
|
|
|
// DbSet for tbl_marine_tarball
|
|
public DbSet<MarineTarball> MarineTarballs { get; set; }
|
|
public DbSet<TarballStation> TarballStations { get; set; }
|
|
public DbSet<State> States { get; set; }
|
|
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
// Map MarineTarball to tbl_marine_tarball
|
|
modelBuilder.Entity<MarineTarball>().ToTable("tbl_marine_tarball");
|
|
|
|
// Configure properties if needed
|
|
modelBuilder.Entity<MarineTarball>(entity =>
|
|
{
|
|
entity.HasKey(e => e.Id); // Primary key
|
|
entity.Property(e => e.Id).HasColumnName("id");
|
|
entity.Property(e => e.ReportID).HasColumnName("reportID").HasMaxLength(50);
|
|
entity.Property(e => e.FirstSampler).HasColumnName("firstSampler").HasMaxLength(50);
|
|
entity.Property(e => e.SecondSampler).HasColumnName("secondSampler").HasMaxLength(50);
|
|
entity.Property(e => e.DateSample).HasColumnName("dateSample");
|
|
entity.Property(e => e.TimeSample).HasColumnName("timeSample");
|
|
entity.Property(e => e.StationID).HasColumnName("stationID").HasMaxLength(20);
|
|
entity.Property(e => e.ClassifyID).HasColumnName("classifyID").HasMaxLength(20);
|
|
entity.Property(e => e.Latitude).HasColumnName("latitude");
|
|
entity.Property(e => e.Longitude).HasColumnName("longitude");
|
|
entity.Property(e => e.GetLatitude).HasColumnName("getLatitude");
|
|
entity.Property(e => e.GetLongitude).HasColumnName("getLongitude");
|
|
entity.Property(e => e.Timestamp).HasColumnName("timestamp");
|
|
|
|
//Configure relationship with TarballStation
|
|
entity.HasOne(m => m.TarballStation)
|
|
.WithMany()
|
|
.HasForeignKey(m => m.StationID)
|
|
.HasPrincipalKey(t => t.StationID);
|
|
});
|
|
|
|
// Map TarballStation to tbl_tarball_station
|
|
modelBuilder.Entity<TarballStation>().ToTable("tbl_tarball_station");
|
|
|
|
modelBuilder.Entity<TarballStation>(entity =>
|
|
{
|
|
entity.HasKey(e => e.Id); // Primary key
|
|
entity.Property(e => e.Id).HasColumnName("id");
|
|
entity.Property(e => e.StationID).HasColumnName("stationID").HasMaxLength(20);
|
|
entity.Property(e => e.StateID).HasColumnName("stateID").HasMaxLength(10);
|
|
entity.Property(e => e.CategoryID).HasColumnName("categoryID").HasMaxLength(10);
|
|
entity.Property(e => e.LocationName).HasColumnName("locationName").HasMaxLength(50);
|
|
entity.Property(e => e.Longitude).HasColumnName("longitude").HasColumnType("decimal(10,5)");
|
|
entity.Property(e => e.Latitude).HasColumnName("latitude").HasColumnType("decimal(10,5)");
|
|
|
|
// Configure relationship with State
|
|
entity.HasOne(t => t.State)
|
|
.WithMany()
|
|
.HasForeignKey(t => t.StateID)
|
|
.HasPrincipalKey(s => s.StateID);
|
|
});
|
|
|
|
// Map State to tbl_state
|
|
modelBuilder.Entity<State>().ToTable("tbl_state");
|
|
|
|
modelBuilder.Entity<State>(entity =>
|
|
{
|
|
entity.HasKey(e => e.Id); // Primary key
|
|
entity.Property(e => e.Id).HasColumnName("id");
|
|
entity.Property(e => e.StateID).HasColumnName("stateID").HasMaxLength(20);
|
|
entity.Property(e => e.StateName).HasColumnName("stateName").HasMaxLength(50);
|
|
});
|
|
|
|
}
|
|
}
|
|
}
|