private void Select(MemberInitExpression expression, ExpressionParameter parameter, bool isSingle) { foreach (MemberBinding binding in expression.Bindings) { if (binding.BindingType != MemberBindingType.Assignment) { throw new NotSupportedException(); } MemberAssignment memberAssignment = (MemberAssignment)binding; var memberName = memberAssignment.Member.Name; var item = memberAssignment.Expression; if (IsNullable(item) && item is UnaryExpression) { var memtype = ExpressionTool.GetMemberInfoType(memberAssignment.Member); if (IsNullable(memtype) && UtilMethods.GetUnderType(memtype) == UtilMethods.GetUnderType(item.Type)) { item = (item as UnaryExpression).Operand; } } ResolveNewExpressions(parameter, item, memberName); } }