private MemberBinding Convert(LinqExp.MemberBinding linqBinding) { switch (linqBinding.BindingType) { case LinqExp.MemberBindingType.Assignment: var linqMemberAssignment = (LinqExp.MemberAssignment)linqBinding; return(Expression.Bind( linqMemberAssignment.Member, ConvertExp(linqMemberAssignment.Expression))); case LinqExp.MemberBindingType.MemberBinding: var linqMemberBinding = (LinqExp.MemberMemberBinding)linqBinding; return(Expression.MemberBind( linqMemberBinding.Member, linqMemberBinding.Bindings.Project(Convert))); case LinqExp.MemberBindingType.ListBinding: var linqListBinding = (LinqExp.MemberListBinding)linqBinding; return(Expression.ListBind( linqListBinding.Member, linqListBinding.Initializers.Project(Convert))); default: throw new ArgumentOutOfRangeException(); } }