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); }