Пример #1
0
        public void WhereSelectTestByName()
        {
            Func <Expression, Expression> predicateGenerator = param =>
                                                               Expression.Equal(Expression.Property(param, "Id"), Expression.Constant(1));

            MemberAssignment[] assignments = new MemberAssignment[]
            {
                sourceParam.BindFilteredList <ObjectE, ObjectA, ObjectB>("ListOfB", "ListOfA", predicateGenerator, ObjectB.FromObjectA)
            };

            ObjectE obj = listOfObjectD.Select(Expression.Lambda <Func <ObjectD, ObjectE> >(
                                                   Expression.MemberInit(Expression.New(typeof(ObjectE)), assignments)
                                                   , sourceParam).Compile()).FirstOrDefault();

            Assert.IsNotNull(obj.ListOfB);
            Assert.AreEqual(1, obj.ListOfB.Count());
            Assert.AreEqual(1, obj.ListOfB.FirstOrDefault().Id);
        }