using Microsoft.EntityFrameworkCore;
public static void Main()
public class MyDb : DbContext
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
optionsBuilder.UseSqlServer("Server=.");
protected override void OnModelCreating(ModelBuilder modelBuilder)
modelBuilder.Entity<Parent>(builder =>
builder.ToTable("ParentTable", tableBuilder =>
tableBuilder.IsTemporal();
tableBuilder.Property<DateTime>("PeriodStart").HasColumnName("PeriodStart");
tableBuilder.Property<DateTime>("PeriodEnd").HasColumnName("PeriodEnd");
builder.HasKey(t => t.Id);
builder.OwnsOne(t => t.ChildProp, childBuilder =>
childBuilder.ToTable("ParentTable", tableBuilder =>
tableBuilder.IsTemporal();
tableBuilder.Property<DateTime>("PeriodStart").HasColumnName("PeriodStart");
tableBuilder.Property<DateTime>("PeriodEnd").HasColumnName("PeriodEnd");
childBuilder.Property(t => t.Amount).IsRequired().HasPrecision(18, 2).HasColumnName("Parent_Amount");
childBuilder.Property(t => t.Currency).IsRequired().HasColumnName("Parent_Currency");
public DbSet<Parent> Parents { get; set; }
public Guid Id { get; set; }
public Child ChildProp { get; set; }
public decimal Amount { get; set; }
public string Currency { get; set; }