/// <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); } } }
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 { } }
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}"); } }
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}"); } }