Ich versuche TPH-Vererbung mit Entity Framework 6 Code First zu implementieren und habe Probleme mit einer Beziehung von meinen geerbten Typen.Entity Framework-Vererbung und Beziehungen
Mein Code ist
public abstract class Base...
public class Inherited1 : Base
{
public virtual Type1 Rel { get; set; }
...
public class Inherited2 : Base
{
public virtual Type1 Rel {get;set;}
...
So die vererbten Typen die "gleiche" Beziehung haben. Die Vererbung selbst funktioniert gut, aber das Problem, das ich habe, ist, dass die Beziehung zu der Tabelle Type1 zweimal hinzugefügt wird (logisch ...) und die andere Beziehung von Inherited2.Id zu Type1.Id statt Inherited2.Type1Id zu Type1.Id dass die erste Beziehung (korrekt) ist.
Ich bin mir nicht sicher, ob es Sinn macht, dies zu erklären und mit dem partiellen Codebeispiel mit geänderten Typennamen, aber ich hoffe, Sie haben es verstanden. Fragen Sie nach weiteren Details, wenn Sie welche benötigen.
Ich könnte wahrscheinlich diese implementieren richtig mit
UPDATE
ich eine Probe Github Repo erstellt haben, das Problem zu demonstrieren. Sag mir einfach, was ich falsch mache. https://github.com/antsim/EntityFrameworkTester
was verwenden Sie? Fließende API oder Anmerkungen? In beiden Fällen zeigen Sie Code, was Sie verwenden – Monah
Die einzige fließende API in Bezug auf diese Beziehungen ist diese modelBuilder.Entity() .HasMany (x => x.Inherited1) .WithRequired (x => x. Typ1) .WillCascadeOnDelete(); –
Ich fügte in meiner Antwort unten die beiden Fälle TPT und TPH für Ihre Referenz hinzu – Monah