コード例 #1
0
        public void Get_departments_with_filtered_inlude_with_filter_on_child_include()
        {
            ISchoolRepository             repository = serviceProvider.GetRequiredService <ISchoolRepository>();
            ICollection <DepartmentModel> list       = Task.Run
                                                       (
                () => repository.GetItemsAsync <DepartmentModel, Department>
                (
                    d => d.Courses.Count > 0, null, null,
                    new FilteredIncludeExpression[]
            {
                new FilteredIncludeExpression
                {
                    Include          = LinqHelpers.ToSelector <DepartmentModel, ICollection <CourseModel> >(i => i.Courses),
                    FilteredIncludes = new FilteredIncludeExpression[]
                    {
                        new FilteredIncludeExpression
                        {
                            Include = LinqHelpers.ToSelector <CourseModel, ICollection <CourseAssignmentModel> >(i => i.Assignments),
                            Filter  = LinqHelpers.ToFilter <CourseAssignmentModel>(e => e.CourseID == -1)
                        }
                    }
                }
            }
                )
                                                       ).Result;

            Assert.True(list.First().Courses.Count > 0);
            Assert.True(list.First().Courses.First().Assignments.Count == 0);
        }
コード例 #2
0
        public void Get_instuctors_with_filtered_inlude_conditionally_select_reference_with_invalid_condition()
        {
            ISchoolRepository             repository = serviceProvider.GetRequiredService <ISchoolRepository>();
            ICollection <InstructorModel> list       = Task.Run
                                                       (
                () => repository.GetItemsAsync <InstructorModel, Instructor>
                (
                    i => i.OfficeAssignment != null, null, null,
                    new FilteredIncludeExpression[]
            {
                new FilteredIncludeExpression
                {
                    Include = LinqHelpers.ToSelector <InstructorModel, OfficeAssignmentModel>(i => i.OfficeAssignment),
                    Filter  = LinqHelpers.ToFilter <OfficeAssignmentModel>(oa => oa.Location.StartsWith("*"))
                }
            }
                )
                                                       ).Result;

            Assert.Null(list.First().OfficeAssignment);
        }
コード例 #3
0
        public void Get_students_with_filtered_inlude_with_filter()
        {
            ISchoolRepository          repository = serviceProvider.GetRequiredService <ISchoolRepository>();
            ICollection <StudentModel> list       = Task.Run
                                                    (
                () => repository.GetItemsAsync <StudentModel, Student>
                (
                    s => s.Enrollments.Count > 0, null, null,
                    new FilteredIncludeExpression[]
            {
                new FilteredIncludeExpression
                {
                    Include = LinqHelpers.ToSelector <StudentModel, ICollection <EnrollmentModel> >(i => i.Enrollments),
                    Filter  = LinqHelpers.ToFilter <EnrollmentModel>(e => e.EnrollmentID == -1)
                }
            }
                )
                                                    ).Result;

            Assert.True(list.First().Enrollments.Count == 0);
        }