using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace EfCoreTemporalTablePart3.Migrations { public partial class Initial : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "Entreprise", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Nom = table.Column(type: "nvarchar(80)", maxLength: 80, nullable: false), Adresse = table.Column(type: "nvarchar(80)", maxLength: 80, nullable: false), ValideAu = table.Column(type: "datetime2", nullable: false) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalPeriodEndColumnName", "ValideAu") .Annotation("SqlServer:TemporalPeriodStartColumnName", "ValideDu"), ValideDu = table.Column(type: "datetime2", nullable: false) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalPeriodEndColumnName", "ValideAu") .Annotation("SqlServer:TemporalPeriodStartColumnName", "ValideDu") }, constraints: table => { table.PrimaryKey("PK_Entreprise", x => x.Id); }) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalHistoryTableName", "EntrepriseHistorique") .Annotation("SqlServer:TemporalHistoryTableSchema", null) .Annotation("SqlServer:TemporalPeriodEndColumnName", "ValideAu") .Annotation("SqlServer:TemporalPeriodStartColumnName", "ValideDu"); migrationBuilder.CreateTable( name: "Employe", columns: table => new { Id = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), Prenom = table.Column(type: "nvarchar(80)", maxLength: 80, nullable: false), Nom = table.Column(type: "nvarchar(80)", maxLength: 80, nullable: false), EntrepriseId = table.Column(type: "int", nullable: false), PeriodEnd = table.Column(type: "datetime2", nullable: false) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalPeriodEndColumnName", "PeriodEnd") .Annotation("SqlServer:TemporalPeriodStartColumnName", "PeriodStart"), PeriodStart = table.Column(type: "datetime2", nullable: false) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalPeriodEndColumnName", "PeriodEnd") .Annotation("SqlServer:TemporalPeriodStartColumnName", "PeriodStart") }, constraints: table => { table.PrimaryKey("PK_Employe", x => x.Id); table.ForeignKey( name: "FK_Employe_Entreprise", column: x => x.EntrepriseId, principalTable: "Entreprise", principalColumn: "Id"); }) .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalHistoryTableName", "EmployeHistory") .Annotation("SqlServer:TemporalHistoryTableSchema", null) .Annotation("SqlServer:TemporalPeriodEndColumnName", "PeriodEnd") .Annotation("SqlServer:TemporalPeriodStartColumnName", "PeriodStart"); migrationBuilder.CreateIndex( name: "IX_Employe_EntrepriseId", table: "Employe", column: "EntrepriseId"); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "Employe") .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalHistoryTableName", "EmployeHistory") .Annotation("SqlServer:TemporalHistoryTableSchema", null) .Annotation("SqlServer:TemporalPeriodEndColumnName", "PeriodEnd") .Annotation("SqlServer:TemporalPeriodStartColumnName", "PeriodStart"); migrationBuilder.DropTable( name: "Entreprise") .Annotation("SqlServer:IsTemporal", true) .Annotation("SqlServer:TemporalHistoryTableName", "EntrepriseHistorique") .Annotation("SqlServer:TemporalHistoryTableSchema", null) .Annotation("SqlServer:TemporalPeriodEndColumnName", "ValideAu") .Annotation("SqlServer:TemporalPeriodStartColumnName", "ValideDu"); } } }