BrightstarDB.Tests.EntityFramework.LinqTests.TestLinqWhere C# (CSharp) Метод

TestLinqWhere() приватный Метод

private TestLinqWhere ( ) : void
Результат void
        public void TestLinqWhere()
        {
            var connectionString = GetConnectionString("TestLinqWhere");
            var context = new MyEntityContext(connectionString);

            // Setup
            var programming = context.Skills.Create();
            programming.Name = "Programming";
            var projectManagement = context.Skills.Create();
            projectManagement.Name = "Project Management";
            var graphicDesign = context.Skills.Create();
            graphicDesign.Name = "Graphic Design";

            var pe = context.Persons.Create();
            pe.Name = "Alex";
            pe.Age = 30;
            pe.MainSkill = programming;

            var pb = context.Persons.Create();
            pb.Name = "Bill";
            pb.Age = 30;
            pb.MainSkill = projectManagement;

            var pf = context.Persons.Create();
            pf.Name = "Freddie";
            pf.Age = 30;
            pf.MainSkill = graphicDesign;

            var pd = context.Persons.Create();
            pd.Name = "Dennis";
            pd.Age = 29;
            pd.Friends.Add(pe);
            pd.MainSkill = programming;

            var pc = context.Persons.Create();
            pc.Name = "Carole";
            pc.Age = 29;
            pc.MainSkill = projectManagement;

            var pa = context.Persons.Create();
            pa.Name = "Annie";
            pa.Age = 35;
            pa.MainSkill = graphicDesign;

            context.SaveChanges();

            // Assert
            Assert.AreEqual(6, context.Persons.Count());

            var age30 = context.Persons.Where(p => p.Age.Equals(30));
            Assert.AreEqual(3, age30.Count());
            var older = context.Persons.Where(p => p.Age > 30);
            Assert.AreEqual(1, older.Count());
            var younger = context.Persons.Where(p => p.Age < 30);
            Assert.AreEqual(2, younger.Count());

            var startswithA = context.Persons.Where(p => p.Name.StartsWith("A"));
            Assert.AreEqual(2, startswithA.Count());

            var endsWithE = context.Persons.Where(p => p.Name.EndsWith("e"));
            Assert.AreEqual(3, endsWithE.Count());

            endsWithE = context.Persons.Where(p => p.Name.EndsWith("E", true, CultureInfo.CurrentUICulture));
            Assert.AreEqual(3, endsWithE.Count());

            endsWithE = context.Persons.Where(p => p.Name.EndsWith("E", false, CultureInfo.CurrentUICulture));
            Assert.AreEqual(0, endsWithE.Count());

            endsWithE = context.Persons.Where(p => p.Name.EndsWith("E", StringComparison.CurrentCultureIgnoreCase));
            Assert.AreEqual(3, endsWithE.Count());

            endsWithE = context.Persons.Where(p => p.Name.EndsWith("E", StringComparison.CurrentCulture));
            Assert.AreEqual(0, endsWithE.Count());

            var containsNi = context.Persons.Where(p => p.Name.Contains("ni"));
            Assert.AreEqual(2, containsNi.Count());

            var x = context.Persons.Where(p => Regex.IsMatch(p.Name, "^a.*e$", RegexOptions.IgnoreCase));
            Assert.AreEqual(1, x.Count());
            Assert.AreEqual("Annie", x.First().Name);

            var annie = context.Persons.Where(p => p.Name.Equals("Annie")).FirstOrDefault();
            Assert.IsNotNull(annie);

            //annie = context.Persons.Where(p => p.Name.Equals("Annie")).SingleOrDefault();
            //Assert.IsNotNull(annie);

            var mainSkillsOfPeopleOver30 = from s in context.Skills where s.Expert.Age > 30 select s;
            var results = mainSkillsOfPeopleOver30.ToList();
            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Graphic Design", results.First().Name);

            //note - startswith and getchar are not supported

            //note null is not supported
            //not Count() is not supported
            //var hasFriends = context.Persons.Where(p => p.Friends.Count() > 0);
            //Assert.AreEqual(1, hasFriends.Count());

            //note length is not supported
            //var longNames = context.Persons.Where(p => p.Name.Length > 6);
            //Assert.AreEqual(1, longNames.Count());


        }