示例#1
0
        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 :-(");
            }
        }
示例#2
0
        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);
        }