public void Delete_cascades_Zubereitung_Vorgang() { var v1 = new Vorgang() { Aktion = "A1", Zeit = TimeSpan.FromMinutes(3) }; var v2 = new Vorgang() { Aktion = "A2", Zeit = TimeSpan.FromMinutes(5) }; var z = new Zubereitung() { Name = "Testsuppe" }; z.Vorgaenge.Add(v1); z.Vorgaenge.Add(v2); using (var con = new EfContext(testConString)) { con.Zubereitungen.Add(z); con.SaveChanges(); } using (var con = new EfContext(testConString)) { var loaded = con.Zubereitungen.Find(z.Id); loaded.Vorgaenge.Count.Should().Be(2); //insert cascade //delete v2 var v2_loaded = loaded.Vorgaenge.FirstOrDefault(x => x.Aktion == "A2"); con.Vorgaenge.Remove(v2_loaded); con.SaveChanges(); } using (var con = new EfContext(testConString)) { var loaded = con.Zubereitungen.Find(z.Id); loaded.Should().NotBeNull("Vorgang hat Zubereitung gelöscht :-("); loaded.Vorgaenge.Count.Should().Be(1); //delete zub con.Zubereitungen.Remove(loaded); con.SaveChanges(); } using (var con = new EfContext(testConString)) { con.Zubereitungen.Find(z.Id).Should().BeNull(); con.Vorgaenge.Find(v1.Id).Should().BeNull("Zubereitung hat NICHT den Vorgang gelöscht :-("); } }
public IEnumerable <Produkt> GetDemoProdukte() { var s1 = new Stoff() { Aggregatzustand = Aggregatzustand.Fest, Name = "Stoff" }; var s2 = new Stoff() { Aggregatzustand = Aggregatzustand.Flüssig, Name = "Alt" }; var s3 = new Stoff() { Aggregatzustand = Aggregatzustand.Gas, Name = "Gas" }; var s4 = new Stoff() { Aggregatzustand = Aggregatzustand.Plasma, Name = "Lasange" }; var zub1 = new Zubereitung() { Name = "Stofflasange" }; var z1v1 = new Vorgang() { Aktion = "In fetzten reißen", Zeit = TimeSpan.FromMinutes(7) }; z1v1.Stoffe.Add(s1); var z1v2 = new Vorgang() { Aktion = "Reinschichten", Zeit = TimeSpan.FromMinutes(5) }; z1v2.Stoffe.Add(s4); zub1.Vorgaenge.Add(z1v1); zub1.Vorgaenge.Add(z1v2); var p1 = new Produkt() { Name = "Caneloni", Preis = 8.90m }; p1.Zubereitungen.Add(zub1); var zub2 = new Zubereitung() { Name = "Altgas" }; var z2v1 = new Vorgang() { Aktion = "1 für mich, 1 für dich", Zeit = TimeSpan.FromMinutes(9) }; z2v1.Stoffe.Add(s2); z2v1.Stoffe.Add(s3); zub1.Vorgaenge.Add(z2v1); var p2 = new Produkt() { Name = "Edelgas", Preis = 945.8m }; p2.Zubereitungen.Add(zub2); var p3 = new Produkt() { Name = "Wundertüte", Preis = 0.67m }; p3.Zubereitungen.Add(zub1); p3.Zubereitungen.Add(zub2); yield return(p1); yield return(p2); yield return(p3); }