public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
        {
            var predicateMember = "";

            foreach (var o in args)
            {
                if (predicateMember != "")
                {
                    predicateMember += ",";
                }
                if (o is String)
                {
                    predicateMember += @"'" + o + @"'";
                }
                else
                if (o is Boolean)
                {
                    predicateMember += ((bool)o).ToSQLBitField();
                }
                else
                {
                    predicateMember += o;
                }
            }

            result = new SqlStatementFragment(String.Format("{0} {1} ({2})", StatementFragement, binder.Name, predicateMember));
            return(true);
        }
        public override bool TryGetMember(
            GetMemberBinder binder, out object result)
        {
            string name = binder.Name.ToLower();

            if (!InnerDictionary.TryGetValue(name, out result))
            {
                result = new SqlStatementFragment(ToString() + ' ' + binder.Name);
                return(true);
            }
            return(InnerDictionary.TryGetValue(name, out result));
        }