예제 #1
0
        /// <summary>
        /// 执行DBExpress动作
        /// </summary>
        /// <param name="express"></param>
        /// <returns></returns>
        public object Excute(DBExpress express)
        {
            if (express is MongoExpress)
            {
                var            mexpress       = (MongoExpress)express;
                dynamic        dexpress       = mexpress.ToExpress();
                string         collectionname = ComFunc.nvl(dexpress.table);
                QueryDocument  q      = dexpress.query;
                UpdateDocument u      = dexpress.update;
                FieldsBuilder  f      = dexpress.fields;
                FrameDLRObject insert = dexpress.insert;

                if (server.State == MongoServerState.Disconnected)
                {
                    server.Reconnect();
                }
                var collection = database.GetCollection <FrameDLRObject>(collectionname);
                if (mexpress.CurrentAct == DBExpress.ActType.Update)
                {
                    collection.Update(q, u, UpdateFlags.Upsert);
                    return(true);
                }
                else if (mexpress.CurrentAct == DBExpress.ActType.Insert)
                {
                    collection.Insert(insert);
                    return(true);
                }
                else if (mexpress.CurrentAct == DBExpress.ActType.Delete)
                {
                    collection.Remove(q);
                    return(true);
                }
                else
                {
                    var cursor = collection.Find(q).SetFields(f);
                    return(cursor.ToList());
                }
            }
            else
            {
                return(false);
            }
        }
예제 #2
0
        /// <summary>
        /// 执行DBExpress动作
        /// </summary>
        /// <param name="express"></param>
        /// <returns></returns>
        public object Excute(DBExpress express)
        {
            if (express is MongoExpress)
            {
                var            mexpress       = (MongoExpress)express;
                dynamic        dexpress       = mexpress.ToExpress();
                string         collectionname = ComFunc.nvl(dexpress.table);
                BsonDocument   q      = dexpress.query;
                BsonDocument   u      = dexpress.update;
                BsonDocument   f      = dexpress.fields;
                FrameDLRObject insert = dexpress.insert;

                var collection = database.GetCollection <FrameDLRObject>(collectionname);
                if (mexpress.CurrentAct == DBExpress.ActType.Update)
                {
                    collection.UpdateMany(q, u);
                    return(true);
                }
                else if (mexpress.CurrentAct == DBExpress.ActType.Insert)
                {
                    collection.InsertOne(insert);
                    return(true);
                }
                else if (mexpress.CurrentAct == DBExpress.ActType.Delete)
                {
                    collection.DeleteMany(q);
                    return(true);
                }
                else
                {
                    var cursor = collection.Find(q).Project(f);
                    return(cursor.ToList());
                }
            }
            else
            {
                return(false);
            }
        }