SEED-HELL v2: 5 CP-*-Hell ans Ende haengen (IDs 62-66, kein ID-Name-Drift)

Erster Ansatz (Rename-in-Place-Shift) wuerde 17 Hand-zugewiesene
Gerbil.ColorVarietyId-FKs still verfaelschen (1 Tier auf CP-Fuchs live
bestaetigt). Stattdessen: 5 neue Eintraege ans ENDE gehaengt (IDs 62-66),
die 61 bestehenden Eintraege unveraendert.

Migration ReseedColorVarietiesGen3g: NUR 5 InsertData (IDs 62-66),
kein UpdateData, kein DeleteData, keine FK-Drift moeglich.

Neuer Test SeedGen3g_existing_varieties_preserve_id_name_binding:
asserts CP-Fuchs (ID 58) bleibt CP-Fuchs, alle 5 neuen IDs 62-66
haben korrekte Namen, Gesamtzahl = 66.

Gate: 127/127 C#-Tests, has-pending-model-changes = No.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-06 15:40:57 +02:00
parent 1ee176a24a
commit 8dfad32918
6 changed files with 147 additions and 218 deletions

View File

@@ -545,6 +545,32 @@ namespace GerbilManager.Tests
finally { try { Directory.Delete(dir, recursive: true); } catch { } } finally { try { Directory.Delete(dir, recursive: true); } catch { } }
} }
[Fact]
public void SeedGen3g_existing_varieties_preserve_id_name_binding()
{
// SEED-HELL bounce regression: the 61 existing entries must NOT change their
// Id->Name binding after GEN-3g. The 5 new entries (IDs 62-66) are appended.
// A hand-assigned Gerbil.ColorVarietyId pointing to "CP-Fuchs" (ID 58) must
// still map to CP-Fuchs after the migration runs (append-only, no rename-shift).
using var db = NewDb(); // EnsureCreated applies HasData including new 66-entry seed
// ID 58 (index 57 in old catalog, 0-based) = CP-Fuchs — must still be CP-Fuchs
var cpFuchsId = new Guid("00000000-0000-0000-0000-000000000058");
var cpFuchs = db.ColorVarieties.Find(cpFuchsId);
Assert.NotNull(cpFuchs);
Assert.Equal("CP-Fuchs", cpFuchs!.Name);
// New entries at IDs 62-66 exist with correct names
Assert.Equal("CP-Agouti-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000062"))!.Name);
Assert.Equal("CP-Silberagouti-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000063"))!.Name);
Assert.Equal("CP-Algierfuchs-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000064"))!.Name);
Assert.Equal("CP-Polarfuchs-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000065"))!.Name);
Assert.Equal("CP-Orangeschimmel-Hell", db.ColorVarieties.Find(new Guid("00000000-0000-0000-0000-000000000066"))!.Name);
// Total count is exactly 66
Assert.Equal(66, db.ColorVarieties.Count());
}
[Theory] [Theory]
[InlineData("01.02.2020", 2020, 2, 1)] [InlineData("01.02.2020", 2020, 2, 1)]
[InlineData("5.3.21", 2021, 3, 5)] [InlineData("5.3.21", 2021, 3, 5)]

View File

@@ -231,10 +231,10 @@ public class ApplicationContext : DbContext
/// </summary> /// </summary>
private static void SeedColorVarieties(ModelBuilder modelBuilder) private static void SeedColorVarieties(ModelBuilder modelBuilder)
{ {
// GEN-3g (Kevin): 5 CP-*-Hell variants added (interleaved with base CP varieties). // GEN-3g (Kevin): 5 CP-*-Hell variants appended at the end (IDs 62-66).
// Entries 0-53 (PEW..CP-Agouti) are unchanged. Entries 54+ shift by +1 or +2 where // Existing 61 entries are UNCHANGED (same ID->Name binding preserved).
// the new -Hell variants are inserted; IDs follow the i+1 formula. ON DELETE SET NULL // SortOrder for new entries is appended; Kevin's frontend catalog handles
// on Gerbil.ColorVarietyId means the FK drift is safe; re-import re-links by name. // the interleaved display order via its own sortOrder values.
(string Name, string Genotype)[] catalog = (string Name, string Genotype)[] catalog =
{ {
("Pink Eyed White (PEW)", "AA chch DD EE GG pp spsp rere"), ("Pink Eyed White (PEW)", "AA chch DD EE GG pp spsp rere"),
@@ -290,19 +290,20 @@ public class ApplicationContext : DbContext
("Marder", "aa cchmcchm DD EE GG PP spsp rere"), ("Marder", "aa cchmcchm DD EE GG PP spsp rere"),
("Siam", "aa cchmch DD EE GG PP spsp rere"), ("Siam", "aa cchmch DD EE GG PP spsp rere"),
("Zobel-Hell", "aa cchmch DD EE gg PP spsp rere"), ("Zobel-Hell", "aa cchmch DD EE gg PP spsp rere"),
("CP-Agouti", "AA cchmcchm DD EE GG PP spsp rere"), ("CP-Agouti", "AA cchmcchm DD EE GG PP spsp rere"),
("CP-Agouti-Hell", "AA cchmch DD EE GG PP spsp rere"), // GEN-3g ("CP-Silberagouti", "AA cchmcchm DD EE gg PP spsp rere"),
("CP-Silberagouti", "AA cchmcchm DD EE gg PP spsp rere"), ("CP-Algierfuchs", "AA cchmcchm DD ee GG PP spsp rere"),
("CP-Silberagouti-Hell","AA cchmch DD EE gg PP spsp rere"), // GEN-3g ("CP-Polarfuchs", "AA cchmcchm DD ee gg PP spsp rere"),
("CP-Algierfuchs", "AA cchmcchm DD ee GG PP spsp rere"), ("CP-Fuchs", "AA cchmcchm dd ee GG PP spsp rere"),
("CP-Algierfuchs-Hell", "AA cchmch DD ee GG PP spsp rere"), // GEN-3g ("CP-Fuchs-Hell", "AA cchmch dd ee GG PP spsp rere"),
("CP-Polarfuchs", "AA cchmcchm DD ee gg PP spsp rere"), ("CP-Blaufuchs", "AA cchmcchm dd ee gg PP spsp rere"),
("CP-Polarfuchs-Hell", "AA cchmch DD ee gg PP spsp rere"), // GEN-3g ("CP-Orangeschimmel", "AA cchmcchm DD efef GG PP spsp rere"),
("CP-Fuchs", "AA cchmcchm dd ee GG PP spsp rere"), // GEN-3g: 5 new CP-*-Hell variants appended (IDs 62-66, no ID->Name drift)
("CP-Fuchs-Hell", "AA cchmch dd ee GG PP spsp rere"), ("CP-Agouti-Hell", "AA cchmch DD EE GG PP spsp rere"),
("CP-Blaufuchs", "AA cchmcchm dd ee gg PP spsp rere"), ("CP-Silberagouti-Hell", "AA cchmch DD EE gg PP spsp rere"),
("CP-Orangeschimmel", "AA cchmcchm DD efef GG PP spsp rere"), ("CP-Algierfuchs-Hell", "AA cchmch DD ee GG PP spsp rere"),
("CP-Orangeschimmel-Hell","AA cchmch DD efef GG PP spsp rere"), // GEN-3g ("CP-Polarfuchs-Hell", "AA cchmch DD ee gg PP spsp rere"),
("CP-Orangeschimmel-Hell","AA cchmch DD efef GG PP spsp rere"),
}; };
var rows = new ColorVariety[catalog.Length]; var rows = new ColorVariety[catalog.Length];

View File

@@ -1,156 +0,0 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace GerbilManagerWebAPI.Migrations
{
/// <inheritdoc />
public partial class ReseedColorVarietiesGen3g : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000055"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmch DD EE GG PP spsp rere", "CP-Agouti-Hell" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000056"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD EE gg PP spsp rere", "CP-Silberagouti" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000057"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmch DD EE gg PP spsp rere", "CP-Silberagouti-Hell" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000058"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD ee GG PP spsp rere", "CP-Algierfuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000059"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmch DD ee GG PP spsp rere", "CP-Algierfuchs-Hell" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000060"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD ee gg PP spsp rere", "CP-Polarfuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000061"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmch DD ee gg PP spsp rere", "CP-Polarfuchs-Hell" });
migrationBuilder.InsertData(
table: "ColorVarieties",
columns: new[] { "Id", "CanonicalGenotype", "Name", "SortOrder" },
values: new object[,]
{
{ new Guid("00000000-0000-0000-0000-000000000062"), "AA cchmcchm dd ee GG PP spsp rere", "CP-Fuchs", 61 },
{ new Guid("00000000-0000-0000-0000-000000000063"), "AA cchmch dd ee GG PP spsp rere", "CP-Fuchs-Hell", 62 },
{ new Guid("00000000-0000-0000-0000-000000000064"), "AA cchmcchm dd ee gg PP spsp rere", "CP-Blaufuchs", 63 },
{ new Guid("00000000-0000-0000-0000-000000000065"), "AA cchmcchm DD efef GG PP spsp rere", "CP-Orangeschimmel", 64 },
{ new Guid("00000000-0000-0000-0000-000000000066"), "AA cchmch DD efef GG PP spsp rere", "CP-Orangeschimmel-Hell", 65 }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000062"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000063"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000064"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000065"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000066"));
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000055"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD EE gg PP spsp rere", "CP-Silberagouti" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000056"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD ee GG PP spsp rere", "CP-Algierfuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000057"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD ee gg PP spsp rere", "CP-Polarfuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000058"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm dd ee GG PP spsp rere", "CP-Fuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000059"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmch dd ee GG PP spsp rere", "CP-Fuchs-Hell" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000060"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm dd ee gg PP spsp rere", "CP-Blaufuchs" });
migrationBuilder.UpdateData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000061"),
columns: new[] { "CanonicalGenotype", "Name" },
values: new object[] { "AA cchmcchm DD efef GG PP spsp rere", "CP-Orangeschimmel" });
}
}
}

View File

@@ -11,7 +11,7 @@ using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
namespace GerbilManagerWebAPI.Migrations namespace GerbilManagerWebAPI.Migrations
{ {
[DbContext(typeof(ApplicationContext))] [DbContext(typeof(ApplicationContext))]
[Migration("20260606133459_ReseedColorVarietiesGen3g")] [Migration("20260606134002_ReseedColorVarietiesGen3g")]
partial class ReseedColorVarietiesGen3g partial class ReseedColorVarietiesGen3g
{ {
/// <inheritdoc /> /// <inheritdoc />
@@ -563,78 +563,78 @@ namespace GerbilManagerWebAPI.Migrations
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000055"), Id = new Guid("00000000-0000-0000-0000-000000000055"),
CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere",
Name = "CP-Agouti-Hell", Name = "CP-Silberagouti",
SortOrder = 54 SortOrder = 54
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000056"), Id = new Guid("00000000-0000-0000-0000-000000000056"),
CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere",
Name = "CP-Silberagouti", Name = "CP-Algierfuchs",
SortOrder = 55 SortOrder = 55
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000057"), Id = new Guid("00000000-0000-0000-0000-000000000057"),
CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere",
Name = "CP-Silberagouti-Hell", Name = "CP-Polarfuchs",
SortOrder = 56 SortOrder = 56
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000058"), Id = new Guid("00000000-0000-0000-0000-000000000058"),
CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere",
Name = "CP-Algierfuchs", Name = "CP-Fuchs",
SortOrder = 57 SortOrder = 57
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000059"), Id = new Guid("00000000-0000-0000-0000-000000000059"),
CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere",
Name = "CP-Algierfuchs-Hell", Name = "CP-Fuchs-Hell",
SortOrder = 58 SortOrder = 58
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000060"), Id = new Guid("00000000-0000-0000-0000-000000000060"),
CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere",
Name = "CP-Polarfuchs", Name = "CP-Blaufuchs",
SortOrder = 59 SortOrder = 59
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000061"), Id = new Guid("00000000-0000-0000-0000-000000000061"),
CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere",
Name = "CP-Polarfuchs-Hell", Name = "CP-Orangeschimmel",
SortOrder = 60 SortOrder = 60
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000062"), Id = new Guid("00000000-0000-0000-0000-000000000062"),
CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere",
Name = "CP-Fuchs", Name = "CP-Agouti-Hell",
SortOrder = 61 SortOrder = 61
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000063"), Id = new Guid("00000000-0000-0000-0000-000000000063"),
CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere",
Name = "CP-Fuchs-Hell", Name = "CP-Silberagouti-Hell",
SortOrder = 62 SortOrder = 62
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000064"), Id = new Guid("00000000-0000-0000-0000-000000000064"),
CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere",
Name = "CP-Blaufuchs", Name = "CP-Algierfuchs-Hell",
SortOrder = 63 SortOrder = 63
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000065"), Id = new Guid("00000000-0000-0000-0000-000000000065"),
CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere",
Name = "CP-Orangeschimmel", Name = "CP-Polarfuchs-Hell",
SortOrder = 64 SortOrder = 64
}, },
new new

View File

@@ -0,0 +1,58 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
#pragma warning disable CA1814 // Prefer jagged arrays over multidimensional
namespace GerbilManagerWebAPI.Migrations
{
/// <inheritdoc />
public partial class ReseedColorVarietiesGen3g : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.InsertData(
table: "ColorVarieties",
columns: new[] { "Id", "CanonicalGenotype", "Name", "SortOrder" },
values: new object[,]
{
{ new Guid("00000000-0000-0000-0000-000000000062"), "AA cchmch DD EE GG PP spsp rere", "CP-Agouti-Hell", 61 },
{ new Guid("00000000-0000-0000-0000-000000000063"), "AA cchmch DD EE gg PP spsp rere", "CP-Silberagouti-Hell", 62 },
{ new Guid("00000000-0000-0000-0000-000000000064"), "AA cchmch DD ee GG PP spsp rere", "CP-Algierfuchs-Hell", 63 },
{ new Guid("00000000-0000-0000-0000-000000000065"), "AA cchmch DD ee gg PP spsp rere", "CP-Polarfuchs-Hell", 64 },
{ new Guid("00000000-0000-0000-0000-000000000066"), "AA cchmch DD efef GG PP spsp rere", "CP-Orangeschimmel-Hell", 65 }
});
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000062"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000063"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000064"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000065"));
migrationBuilder.DeleteData(
table: "ColorVarieties",
keyColumn: "Id",
keyValue: new Guid("00000000-0000-0000-0000-000000000066"));
}
}
}

View File

@@ -560,78 +560,78 @@ namespace GerbilManagerWebAPI.Migrations
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000055"), Id = new Guid("00000000-0000-0000-0000-000000000055"),
CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere", CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere",
Name = "CP-Agouti-Hell", Name = "CP-Silberagouti",
SortOrder = 54 SortOrder = 54
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000056"), Id = new Guid("00000000-0000-0000-0000-000000000056"),
CanonicalGenotype = "AA cchmcchm DD EE gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere",
Name = "CP-Silberagouti", Name = "CP-Algierfuchs",
SortOrder = 55 SortOrder = 55
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000057"), Id = new Guid("00000000-0000-0000-0000-000000000057"),
CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere",
Name = "CP-Silberagouti-Hell", Name = "CP-Polarfuchs",
SortOrder = 56 SortOrder = 56
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000058"), Id = new Guid("00000000-0000-0000-0000-000000000058"),
CanonicalGenotype = "AA cchmcchm DD ee GG PP spsp rere", CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere",
Name = "CP-Algierfuchs", Name = "CP-Fuchs",
SortOrder = 57 SortOrder = 57
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000059"), Id = new Guid("00000000-0000-0000-0000-000000000059"),
CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere", CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere",
Name = "CP-Algierfuchs-Hell", Name = "CP-Fuchs-Hell",
SortOrder = 58 SortOrder = 58
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000060"), Id = new Guid("00000000-0000-0000-0000-000000000060"),
CanonicalGenotype = "AA cchmcchm DD ee gg PP spsp rere", CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere",
Name = "CP-Polarfuchs", Name = "CP-Blaufuchs",
SortOrder = 59 SortOrder = 59
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000061"), Id = new Guid("00000000-0000-0000-0000-000000000061"),
CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere", CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere",
Name = "CP-Polarfuchs-Hell", Name = "CP-Orangeschimmel",
SortOrder = 60 SortOrder = 60
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000062"), Id = new Guid("00000000-0000-0000-0000-000000000062"),
CanonicalGenotype = "AA cchmcchm dd ee GG PP spsp rere", CanonicalGenotype = "AA cchmch DD EE GG PP spsp rere",
Name = "CP-Fuchs", Name = "CP-Agouti-Hell",
SortOrder = 61 SortOrder = 61
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000063"), Id = new Guid("00000000-0000-0000-0000-000000000063"),
CanonicalGenotype = "AA cchmch dd ee GG PP spsp rere", CanonicalGenotype = "AA cchmch DD EE gg PP spsp rere",
Name = "CP-Fuchs-Hell", Name = "CP-Silberagouti-Hell",
SortOrder = 62 SortOrder = 62
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000064"), Id = new Guid("00000000-0000-0000-0000-000000000064"),
CanonicalGenotype = "AA cchmcchm dd ee gg PP spsp rere", CanonicalGenotype = "AA cchmch DD ee GG PP spsp rere",
Name = "CP-Blaufuchs", Name = "CP-Algierfuchs-Hell",
SortOrder = 63 SortOrder = 63
}, },
new new
{ {
Id = new Guid("00000000-0000-0000-0000-000000000065"), Id = new Guid("00000000-0000-0000-0000-000000000065"),
CanonicalGenotype = "AA cchmcchm DD efef GG PP spsp rere", CanonicalGenotype = "AA cchmch DD ee gg PP spsp rere",
Name = "CP-Orangeschimmel", Name = "CP-Polarfuchs-Hell",
SortOrder = 64 SortOrder = 64
}, },
new new