EF7 RC1 : Deaktivieren Cascade Löschen
In der RC1 von Entity Framework 7, gestern veröffentlicht, mit Cascade Löschen wurde Hinzugefügt.
Zu deaktivieren, pro Beziehung, die ich verwenden kann :
builder.Entity<Site>().HasOne(e => e.Person)
.WithMany(x => x.Sites).Metadata.DeleteBehavior = DeleteBehavior.Restrict;
Möchte ich deaktivieren Sie Global für eine DbContext, aber ich habe nicht einen Weg finden. Wie kann ich das machen ?
- Ich sterbe, um zu wissen!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jemand anders auf der github-Projekt-forum, dass der einzige Weg, es zu tun, jetzt ist die Iteration über alle Relationen in der Methode
OnModelCreating(ModelBuilder builder)
, und legen Sie dieDeleteBehavior
EigenschaftDeleteBehavior.Restrict
:Jetzt Konventionen sind nicht konfigurierbar. Die aktuelle CascadeDelete übereinkommen gilt nur für notwendig Beziehungen. Beziehungen Konventionen: Cascade Löschen auf efproject.net (Offizielle EF7 docs) Sie können deaktivieren Sie die gewünschten Verhältnis explizit, wenn Sie sich gut verstehen, die Folgen.
Anderes (und empfohlen), müssen Sie die beim Löschen Verhalten explizit ( wie du schon entdeckt).
Wenn Sie nicht
Required
auf eine Eigenschaft im model-Klasse, es generiert wieDeleteBehavior.Restrict
standardmäßig. VerwendenRequired
wenn Sie verwenden möchtenDeleteBehavior.Cascade
. Sie können dies durch die Erzeugung von dummy-Migrationen unter Verwendung mit/ohne Erforderlichen.