Esempio n. 1
0
        /// <summary>
        ///     更新或增加一个新文档
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="tableName">表名 </param>
        /// <param name="keyName"> </param>
        /// <param name="keyvalue"> </param>
        public override void SaveOrUpdateEntity(
            IFreeDocument entity, string tableName, IDictionary <string, object> keys = null,
            EntityExecuteType executeType = EntityExecuteType.InsertOrUpdate)
        {
            if (IsUseable == false)
            {
                return;
            }
            IMongoCollection <Document> collection = DB.GetCollection <Document>(tableName);

            if (executeType == EntityExecuteType.OnlyInsert)
            {
                InsertEntity(entity, collection, tableName);
                return;
            }
            var      query    = new Document(keys);
            Document document = collection.FindOne(query);

            if (executeType == EntityExecuteType.Delete)
            {
                collection.Remove(query);
                return;
            }
            if (document != null)
            {
                UpdateDocument(entity, document);
                if (executeType == EntityExecuteType.InsertOrUpdate || executeType == EntityExecuteType.OnlyUpdate)

                {
                    collection.Save(document);
                }
            }
            else
            {
                if (executeType == EntityExecuteType.InsertOrUpdate || executeType == EntityExecuteType.OnlyInsert)
                {
                    InsertEntity(entity, collection, tableName);
                }
            }
        }
Esempio n. 2
0
        public virtual void SaveOrUpdateEntity(
            IFreeDocument updateItem, string tableName, IDictionary <string, object> keys, EntityExecuteType executeType = EntityExecuteType.InsertOrUpdate)
        {
            var          sb   = new StringBuilder();
            FreeDocument data = updateItem.DictSerialize(Scenario.Database);

            if (data.Count >= 1)
            {
                foreach (var val in data)
                {
                    sb.Append(String.Format(" {0} = '{1}',", val.Key, val.Value));
                }

                sb = sb.Remove(sb.Length - 1, 1);
            }

            try
            {
                ExecuteNonQuery(String.Format("update {0} set {1} where {2};", GetTableName(tableName), sb, ToString()));
            }

            catch
            {
            }
        }
Esempio n. 3
0
        public virtual void SaveOrUpdateEntity(
            IFreeDocument updateItem, string tableName, IDictionary <string, object> keys, EntityExecuteType executeType = EntityExecuteType.InsertOrUpdate)
        {
            var          sb   = new StringBuilder();
            FreeDocument data = updateItem.DictSerialize(Scenario.Database);

            if (data.Count >= 1)
            {
                foreach (var val in data)
                {
                    sb.Append($" {val.Key} = '{val.Value}',");
                }

                sb = sb.Remove(sb.Length - 1, 1);
            }

            try
            {
                ExecuteNonQuery($"update {GetTableName(tableName)} set {sb} where {ToString()};");
            }

            catch (Exception e)
            {
                XLogSys.Print.Debug($"insert database error {e.Message}");
            }
        }
Esempio n. 4
0
        public virtual void SaveOrUpdateEntity(
            IFreeDocument updateItem, string tableName, IDictionary <string, object> keys, EntityExecuteType executeType = EntityExecuteType.InsertOrUpdate)
        {
            FreeDocument data = updateItem.DictSerialize(Scenario.Database);

            foreach (var key in data.Keys.ToList())
            {
                var value = "";
                if (data[key] != null)
                {
                    value = data[key].ToString();
                }
                value     = value.Replace("'", "''");
                data[key] = value;
            }
            var str = ",".Join(data.Select(d => $"{d.Key}='{d.Value}'"));

            try
            {
                ExecuteNonQuery($"update {GetTableName(tableName)} set {str} ");
            }

            catch (Exception e)
            {
                XLogSys.Print.Debug($"insert database error {e.Message}");
            }
        }