Ein Blick in das edmx zeigte auch den erwarteten Eintrag im SSDL:
<Association Name="FK_Foo_Bar"> <End Role="Bar" Type="FooBarModel.Store.Bar" Multiplicity="1"> <OnDelete Action="Cascade" /> </End> <End Role="Foo" Type="FooBarModel.Store.Foo" Multiplicity="*" /> <ReferentialConstraint> <Principal Role="Bar"> <PropertyRef Name="ID" /> </Principal> <Dependent Role="Foo"> <PropertyRef Name="BarId" /> </Dependent> </ReferentialConstraint> </Association>
Leider stellte sich die Gewünschte Funktionalität nicht ein: "A relationship is being added or deleted from an AssociationSet 'FK_foo_bar'. With cardinality constraints, a corresponding 'bar' must also be added or deleted."
Nach reichlich Ärger und ein wenig googeln war der Fehler schnell gefunden: das CSDL wird nicht automatisch mit angepasst.
Nachdem also im CSDL-Teil der edmx folgendes manuell ergänzt wurde:
<Association Name="FK_Foo_Bar"> <End Role="Bar" Type="FooBarModel.Bar" Multiplicity="1"> <OnDelete Action="Cascade" /> </End> <End Role="Foo" Type="FooBarModel.Foo" Multiplicity="*" /> </Association>
Funktioniert auch das Löschen mit onDelete:cscade
Bleibt nur zu hoffen, dass sich die update-Funktionen des Designers im EF4 deutlich verbessert...
Keine Kommentare:
Kommentar veröffentlichen