diff --git a/EFCore.Extensions.SaveOptimizer/.runsettings b/EFCore.Extensions.SaveOptimizer/.runsettings
new file mode 100644
index 00000000..57d9fc29
--- /dev/null
+++ b/EFCore.Extensions.SaveOptimizer/.runsettings
@@ -0,0 +1,7 @@
+
+
+
+ 16
+ net6.0
+
+
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests.csproj b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests.csproj
index 358d56f0..bc933bad 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests.csproj
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests/EFCore.Extensions.SaveOptimizer.Internal.Load.Tests.csproj
@@ -8,6 +8,12 @@
false
+
+
+ Always
+
+
+
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Tests/EFCore.Extensions.SaveOptimizer.Internal.Tests.csproj b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Tests/EFCore.Extensions.SaveOptimizer.Internal.Tests.csproj
index 8302a2f9..731fa0e0 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Tests/EFCore.Extensions.SaveOptimizer.Internal.Tests.csproj
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Internal.Tests/EFCore.Extensions.SaveOptimizer.Internal.Tests.csproj
@@ -8,6 +8,12 @@
false
+
+
+ Always
+
+
+
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.Designer.cs
index 4af79e1d..2e431212 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Cockroach.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000505_InitialCreate")]
+ [Migration("20220718104142_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -40,6 +40,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.cs
similarity index 90%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.cs
index dbc6e333..a1193a35 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718000505_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/20220718104142_InitialCreate.cs
@@ -23,6 +23,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "integer", nullable: false),
+ PrimarySecond = table.Column(type: "integer", nullable: false),
+ Some = table.Column(type: "text", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -109,6 +122,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/EntitiesContextModelSnapshot.cs
index 228b3d3a..f929abe0 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Cockroach/Migrations/EntitiesContextModelSnapshot.cs
@@ -38,6 +38,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.Designer.cs
index 75c87938..a143c80a 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.CockroachMulti.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000516_InitialCreate")]
+ [Migration("20220718104142_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -40,6 +40,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.cs
similarity index 90%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.cs
index cde7fe23..05a66e98 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718000516_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/20220718104142_InitialCreate.cs
@@ -23,6 +23,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "integer", nullable: false),
+ PrimarySecond = table.Column(type: "integer", nullable: false),
+ Some = table.Column(type: "text", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -109,6 +122,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/EntitiesContextModelSnapshot.cs
index fb2d2fbf..a305c747 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.CockroachMulti/Migrations/EntitiesContextModelSnapshot.cs
@@ -38,6 +38,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.Designer.cs
index 4f7860f6..703c65c8 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Firebird3.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000429_InitialCreate")]
+ [Migration("20220718104140_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -38,6 +38,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("BLOB SUB_TYPE TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.cs
index d67d4c86..bb7fcbe3 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718000429_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/20220718104140_InitialCreate.cs
@@ -23,6 +23,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEnti~", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "INTEGER", nullable: false),
+ PrimarySecond = table.Column(type: "INTEGER", nullable: false),
+ Some = table.Column(type: "BLOB SUB_TYPE TEXT", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -109,6 +122,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/EntitiesContextModelSnapshot.cs
index 08395e46..5b4d49b5 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird3/Migrations/EntitiesContextModelSnapshot.cs
@@ -36,6 +36,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("BLOB SUB_TYPE TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.Designer.cs
index 062239b8..95f2939d 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Firebird4.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000441_InitialCreate")]
+ [Migration("20220718104140_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -38,6 +38,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("BLOB SUB_TYPE TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.cs
index 7cfc4087..e65dc6c7 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718000441_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/20220718104140_InitialCreate.cs
@@ -23,6 +23,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEnti~", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "INTEGER", nullable: false),
+ PrimarySecond = table.Column(type: "INTEGER", nullable: false),
+ Some = table.Column(type: "BLOB SUB_TYPE TEXT", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -109,6 +122,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/EntitiesContextModelSnapshot.cs
index cb823cfb..2fd780fd 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Firebird4/Migrations/EntitiesContextModelSnapshot.cs
@@ -36,6 +36,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("BLOB SUB_TYPE TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.Designer.cs
index 95107c2f..34992db4 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Oracle.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000343_InitialCreate")]
+ [Migration("20220718104139_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -40,6 +40,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("NUMBER(10)");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("NUMBER(10)");
+
+ b.Property("Some")
+ .HasColumnType("NVARCHAR2(2000)");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.cs
index 13ca7128..6e030b24 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718000343_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/20220718104139_InitialCreate.cs
@@ -22,6 +22,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "NUMBER(10)", nullable: false),
+ PrimarySecond = table.Column(type: "NUMBER(10)", nullable: false),
+ Some = table.Column(type: "NVARCHAR2(2000)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -108,6 +121,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/EntitiesContextModelSnapshot.cs
index 55377205..8e66ab36 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Oracle/Migrations/EntitiesContextModelSnapshot.cs
@@ -38,6 +38,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("NUMBER(10)");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("NUMBER(10)");
+
+ b.Property("Some")
+ .HasColumnType("NVARCHAR2(2000)");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.Designer.cs
index fe448de0..8eff0022 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.Designer.cs
@@ -11,7 +11,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000453_InitialCreate")]
+ [Migration("20220718104145_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -35,6 +35,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("longtext");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.cs
index d9069093..b4a0b659 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718000453_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/20220718104145_InitialCreate.cs
@@ -28,6 +28,21 @@ protected override void Up(MigrationBuilder migrationBuilder)
})
.Annotation("MySql:CharSet", "utf8mb4");
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "int", nullable: false),
+ PrimarySecond = table.Column(type: "int", nullable: false),
+ Some = table.Column(type: "longtext", nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4")
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ })
+ .Annotation("MySql:CharSet", "utf8mb4");
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -123,6 +138,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/EntitiesContextModelSnapshot.cs
index 3ee4232d..61c135b1 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMariaDb/Migrations/EntitiesContextModelSnapshot.cs
@@ -33,6 +33,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("longtext");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.Designer.cs
index 599d3614..c704cbeb 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.Designer.cs
@@ -11,7 +11,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.PomeloMySql.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000418_InitialCreate")]
+ [Migration("20220718104144_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -35,6 +35,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("longtext");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.cs
index f211881a..39fced86 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718000418_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/20220718104144_InitialCreate.cs
@@ -28,6 +28,21 @@ protected override void Up(MigrationBuilder migrationBuilder)
})
.Annotation("MySql:CharSet", "utf8mb4");
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "int", nullable: false),
+ PrimarySecond = table.Column(type: "int", nullable: false),
+ Some = table.Column(type: "longtext", nullable: true)
+ .Annotation("MySql:CharSet", "utf8mb4")
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ })
+ .Annotation("MySql:CharSet", "utf8mb4");
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -123,6 +138,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/EntitiesContextModelSnapshot.cs
index af952dfa..0944be0d 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.PomeloMySql/Migrations/EntitiesContextModelSnapshot.cs
@@ -33,6 +33,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("longtext");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.Designer.cs
index 41210da0..8b5a6c83 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Postgres.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000406_InitialCreate")]
+ [Migration("20220718104140_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -40,6 +40,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.cs
similarity index 90%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.cs
index 4cc791a0..e93037b1 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718000406_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/20220718104140_InitialCreate.cs
@@ -23,6 +23,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "integer", nullable: false),
+ PrimarySecond = table.Column(type: "integer", nullable: false),
+ Some = table.Column(type: "text", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -109,6 +122,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/EntitiesContextModelSnapshot.cs
index 91bb1bbf..862c0115 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Postgres/Migrations/EntitiesContextModelSnapshot.cs
@@ -38,6 +38,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("integer");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("integer");
+
+ b.Property("Some")
+ .HasColumnType("text");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.Designer.cs
index 6269cc77..46d5957d 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.Designer.cs
@@ -12,7 +12,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.SqlServer.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000330_InitialCreate")]
+ [Migration("20220718104138_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -40,6 +40,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.cs
index 538b4ad5..9721c0b2 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718000330_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/20220718104138_InitialCreate.cs
@@ -22,6 +22,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "int", nullable: false),
+ PrimarySecond = table.Column(type: "int", nullable: false),
+ Some = table.Column(type: "nvarchar(max)", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -108,6 +121,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/EntitiesContextModelSnapshot.cs
index 75376cf1..3561a4ec 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.SqlServer/Migrations/EntitiesContextModelSnapshot.cs
@@ -38,6 +38,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("int");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("int");
+
+ b.Property("Some")
+ .HasColumnType("nvarchar(max)");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.Designer.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.Designer.cs
similarity index 91%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.Designer.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.Designer.cs
index 98ed249d..e4fa4579 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.Designer.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.Designer.cs
@@ -11,7 +11,7 @@
namespace EFCore.Extensions.SaveOptimizer.Model.Sqlite.Migrations
{
[DbContext(typeof(EntitiesContext))]
- [Migration("20220718000354_InitialCreate")]
+ [Migration("20220718104141_InitialCreate")]
partial class InitialCreate
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
@@ -33,6 +33,22 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.cs
similarity index 89%
rename from EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.cs
rename to EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.cs
index 54b59f2b..e7caafbe 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718000354_InitialCreate.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/20220718104141_InitialCreate.cs
@@ -22,6 +22,19 @@ protected override void Up(MigrationBuilder migrationBuilder)
table.PrimaryKey("PK_AutoIncrementPrimaryKeyEntities", x => x.Id);
});
+ migrationBuilder.CreateTable(
+ name: "ComposedPrimaryKeyEntities",
+ columns: table => new
+ {
+ PrimaryFirst = table.Column(type: "INTEGER", nullable: false),
+ PrimarySecond = table.Column(type: "INTEGER", nullable: false),
+ Some = table.Column(type: "TEXT", nullable: true)
+ },
+ constraints: table =>
+ {
+ table.PrimaryKey("PK_ComposedPrimaryKeyEntities", x => new { x.PrimaryFirst, x.PrimarySecond });
+ });
+
migrationBuilder.CreateTable(
name: "FailingEntities",
columns: table => new
@@ -108,6 +121,9 @@ protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "AutoIncrementPrimaryKeyEntities");
+ migrationBuilder.DropTable(
+ name: "ComposedPrimaryKeyEntities");
+
migrationBuilder.DropTable(
name: "FailingEntities");
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/EntitiesContextModelSnapshot.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/EntitiesContextModelSnapshot.cs
index 3560d327..cd9a98c8 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/EntitiesContextModelSnapshot.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model.Sqlite/Migrations/EntitiesContextModelSnapshot.cs
@@ -31,6 +31,22 @@ protected override void BuildModel(ModelBuilder modelBuilder)
b.ToTable("AutoIncrementPrimaryKeyEntities");
});
+ modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.ComposedPrimaryKeyEntity", b =>
+ {
+ b.Property("PrimaryFirst")
+ .HasColumnType("INTEGER");
+
+ b.Property("PrimarySecond")
+ .HasColumnType("INTEGER");
+
+ b.Property("Some")
+ .HasColumnType("TEXT");
+
+ b.HasKey("PrimaryFirst", "PrimarySecond");
+
+ b.ToTable("ComposedPrimaryKeyEntities");
+ });
+
modelBuilder.Entity("EFCore.Extensions.SaveOptimizer.Model.Entities.FailingEntity", b =>
{
b.Property("Id")
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Context/EntitiesContext.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Context/EntitiesContext.cs
index 1830a6af..65f6dd26 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Context/EntitiesContext.cs
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Context/EntitiesContext.cs
@@ -20,6 +20,8 @@ public class EntitiesContext : DbContext
public DbSet ValueConverterEntities { get; set; }
+ public DbSet ComposedPrimaryKeyEntities { get; set; }
+
public EntitiesContext(DbContextOptions options)
: base(options)
{
@@ -35,6 +37,9 @@ protected override void OnModelCreating(ModelBuilder modelBuilder)
.Property(x => x.SomeHalf)
.HasConversion();
+ modelBuilder.Entity()
+ .HasKey(x => new { x.PrimaryFirst, x.PrimarySecond });
+
foreach (Action builder in AdditionalBuilders)
{
builder(modelBuilder);
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Entities/ComposedPrimaryKeyEntity.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Entities/ComposedPrimaryKeyEntity.cs
new file mode 100644
index 00000000..613eec2e
--- /dev/null
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Model/Entities/ComposedPrimaryKeyEntity.cs
@@ -0,0 +1,17 @@
+using System.ComponentModel.DataAnnotations;
+using System.ComponentModel.DataAnnotations.Schema;
+
+namespace EFCore.Extensions.SaveOptimizer.Model.Entities;
+
+public class ComposedPrimaryKeyEntity
+{
+ [DatabaseGenerated(DatabaseGeneratedOption.None)]
+ [Required]
+ public int? PrimaryFirst { get; set; }
+
+ [DatabaseGenerated(DatabaseGeneratedOption.None)]
+ [Required]
+ public int? PrimarySecond { get; set; }
+
+ public string? Some { get; set; }
+}
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/EFCore.Extensions.SaveOptimizer.Shared.Tests.csproj b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/EFCore.Extensions.SaveOptimizer.Shared.Tests.csproj
index 3467a5df..0fa8d14c 100644
--- a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/EFCore.Extensions.SaveOptimizer.Shared.Tests.csproj
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/EFCore.Extensions.SaveOptimizer.Shared.Tests.csproj
@@ -8,6 +8,12 @@
false
+
+
+ Always
+
+
+
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Properties/AssemblyInfo.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 00000000..e38d6e84
--- /dev/null
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1 @@
+[assembly: CollectionBehavior(CollectionBehavior.CollectionPerAssembly)]
diff --git a/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Tests/BaseComposedPrimaryKeyTests.cs b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Tests/BaseComposedPrimaryKeyTests.cs
new file mode 100644
index 00000000..6779cf06
--- /dev/null
+++ b/EFCore.Extensions.SaveOptimizer/EFCore.Extensions.SaveOptimizer.Shared.Tests/Tests/BaseComposedPrimaryKeyTests.cs
@@ -0,0 +1,307 @@
+using EFCore.Extensions.SaveOptimizer.Model.Entities;
+using EFCore.Extensions.SaveOptimizer.Shared.Tests.Attributes;
+using EFCore.Extensions.SaveOptimizer.Shared.Tests.Enums;
+using EFCore.Extensions.SaveOptimizer.Shared.Tests.Extensions;
+using EFCore.Extensions.SaveOptimizer.Shared.Tests.Wrappers;
+
+namespace EFCore.Extensions.SaveOptimizer.Shared.Tests.Tests;
+
+public abstract partial class BaseMiscTests
+{
+ [SkippableTheory]
+ [MemberData(nameof(BaseWriteTheoryData))]
+ public async Task GivenSaveChangesAsync_WhenInsertComposedPrimaryKey_ShouldStoreData(SaveVariant variant)
+ {
+ // Arrange
+ using DbContextWrapper db = ContextWrapperResolver();
+
+ ComposedPrimaryKeyEntity[] data =
+ {
+ new() { PrimaryFirst = 1, PrimarySecond = 1, Some = "some-1" },
+ new() { PrimaryFirst = 1, PrimarySecond = 2, Some = "some-2" },
+ new() { PrimaryFirst = 2, PrimarySecond = 1, Some = "some-3" },
+ new() { PrimaryFirst = 2, PrimarySecond = 2, Some = "some-4" }
+ };
+
+ await db.Context.AddRangeAsync(data as IEnumerable