Пример #1
0
        public override bool TryInvokeMember(InvokeMemberBinder binder,
            object[] args, out object result)
        {
            var name = binder.Name.Replace("Upsert", string.Empty);
            var collapsed = args[0].Collapse();
            var whereCondition = binder.ToWhereStatement();
            if (binder.Name.EndsWith("Upsert"))
            {
                var insert = collapsed.ToInsertStatement(name);
                var update = collapsed.ToUpdateStatement(name);
                var query = string.Format(UpsertQuery, name, whereCondition, update, insert);
                result = ExecuteQuery(query, collapsed.Values.ToArray());
            }
            else
            {
                var query = string.Format(SelectQuery,name, whereCondition);
                result = Read(query, collapsed.Values.ToArray());
            }

            return true;
        }