Die MERGE-Anweisung stand in Konflikt mit der FOREIGN KEY-EinschränkungC#

Ein Treffpunkt für C#-Programmierer
Guest
 Die MERGE-Anweisung stand in Konflikt mit der FOREIGN KEY-Einschränkung

Post by Guest »

Ich versuche, dass EF Core Daten in zwei Tabellen einfügt, die wie folgt konfiguriert sind:
[img]https:// i.sstatic.net/zzBiyR5n.png[/img]

Code: Select all

QuantifiableRates
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:

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);
Und GlobalQuantifiableRate fließende Konfiguration:

Code: Select all

modelBuilder.Entity().HasKey(e => new { e.Id, e.Revision });
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:

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 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?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post