Die MERGE-Anweisung stand in Konflikt mit der FOREIGN KEY-Einschränkung
Posted: 20 Jan 2025, 19:03
Ich versuche, dass EF Core Daten in zwei Tabellen einfügt, die wie folgt konfiguriert sind:
[img]https:// i.sstatic.net/zzBiyR5n.png[/img]
hat eine PK aus Id und Revision und hat eine 1:1-Beziehung (zumindest das, was ich versuche) mit GlobalQuantifiableRates über GlobalQuantifiableRateId und GlobalQuantifiableRateRevision.
Dann hat GlobalQuantifiableRates eine 1:1-Beziehung mit GlobalQuantifiableRateTypes.
Hier ist QuantifiableRates fließend eingerichtet:
Und GlobalQuantifiableRate fließende Konfiguration:
Sieht korrekt konfiguriert aus, um die schlecht gezeichnete UML widerzuspiegeln, aber EF Core gibt beim Einfügen von Daten den folgenden Fehler aus:
Die MERGE-Anweisung stand in Konflikt mit der FOREIGN KEY-Einschränkung
"FK_QuantifiableRates_GlobalQuantifiableRates_GlobalQuantifiableRateId_GlobalQuantifiableRateRevision
In der resultierenden Migration hat EF Core Folgendes für diesen FK erstellt:
Das Seltsame ist, dass ich in SQL Server Mgmt Studio Daten problemlos einfügen kann und die PK/FK-Eindeutigkeitsbeschränkungen respektiert werden.
Das habe ich gelesen Das könnte daran liegen, dass das Löschen von Daten durch EF Core nicht mit dem Datenmodell übereinstimmt. Stimmt das?
Was übersehe ich hier?
[img]https:// i.sstatic.net/zzBiyR5n.png[/img]
Code: Select all
QuantifiableRates
Dann hat GlobalQuantifiableRates eine 1:1-Beziehung mit GlobalQuantifiableRateTypes.
Hier ist QuantifiableRates fließend eingerichtet:
Code: Select all
modelBuilder.Entity().Property(e => e.Id).HasDefaultValueSql("NEWID()")
.ValueGeneratedOnAdd();
modelBuilder.Entity().HasKey(e => new { e.Id, e.Revision });
modelBuilder.Entity().HasOne(e => e.GlobalQuantifiableRate).WithOne()
.HasForeignKey(e => new { e.GlobalQuantifiableRateId, e.GlobalQuantifiableRateRevision }).OnDelete(DeleteBehavior.Cascade);
Code: Select all
modelBuilder.Entity().HasKey(e => new { e.Id, e.Revision });
Die MERGE-Anweisung stand in Konflikt mit der FOREIGN KEY-Einschränkung
"FK_QuantifiableRates_GlobalQuantifiableRates_GlobalQuantifiableRateId_GlobalQuantifiableRateRevision
In der resultierenden Migration hat EF Core Folgendes für diesen FK erstellt:
Code: Select all
migrationBuilder.AddForeignKey(
name: "FK_QuantifiableRates_GlobalQuantifiableRates_GlobalQuantifiableRateId_GlobalQuantifiableRateRevision",
table: "QuantifiableRates",
columns: new[] { "GlobalQuantifiableRateId", "GlobalQuantifiableRateRevision" },
principalTable: "GlobalQuantifiableRates",
principalColumns: new[] { "Id", "Revision" },
onDelete: ReferentialAction.Cascade);
Das habe ich gelesen Das könnte daran liegen, dass das Löschen von Daten durch EF Core nicht mit dem Datenmodell übereinstimmt. Stimmt das?
Was übersehe ich hier?