2017-03-27 7 views
0

Ich entferne ein Objekt mit Entity Framework aus der Tabelle.Entity Framework Verwaiste Objekte beim Löschen belassen

Wenn ich die Anwendung lösche, wird der FundingInfo-Eintrag verwaist. Beim Erstellen der Migration wurde die PK (FundingInfoId), die in der Anwendung erstellt wurde, auf onDelete: ReferentialAction.Restrict gesetzt. Ich habe dies so geändert, dass sie auf onDelete: ReferentialAction.Cascade gesetzt ist und sie hinterlässt diesen Eintrag noch in Förderinfo.

Wie bekomme ich Entity zum Löschen auf ein 1 zu 1 Objekt kaskadieren? Ich möchte, dass das FundingInfo-Objekt in Application null sein darf ... Wenn es jedoch beim Löschen des Objekts nicht null ist, sollte es auch das FundingInfo-Objekt löschen.

Offensichtlich kann ich es manuell löschen, aber das ist eins von vielen 1 zu 1 Objekten, die verwaist werden, und ich möchte vermeiden können, das Objekt mit einer Menge von Schleifen zu durchlaufen.

+0

Fügen Sie den Code hinzu, wie Sie die Beziehung zwischen den beiden Klassen in EF einrichten. Übrigens gibt es im Web viele Beispiele/Tutorials zur Konfiguration von EF-Relationen und die beste Option ist die Verwendung der EF-FluentAPI –

Antwort

0

Machen Sie es erforderlich und kaskadierende Löschung wird aktiviert.

public class Application { 
    public int ApplicationId { get; set; } 
    [Required] 
    public FundingInfo FundingInfo { get; set; } 
    .... 
} 

public class FundingInfo { 
    public long FundingInfoId { get; set; } 
    .... 
} 
Verwandte Themen