/// <summary> /// 复制符号数据 /// </summary> /// <param name="dbEntityObject"></param> /// <param name="g3eObject"></param> /// <returns></returns> private static void SetBrotherDBEntity(DBEntityObject dbEntityObject, G3EObject g3eObject) { try { var className = dbEntityObject.className; var type = TypeCache.Instance.GetTypeFromCache(typeof(DBEntity), className); var targetDBEntity = DBManager.Instance.GetEntity(type, g3eObject.G3E_FID); if (targetDBEntity != null) { //原数据 var sourceDBEntity = dbEntityObject.dbEntity; var properties = targetDBEntity.GetType().GetProperties(); foreach (var property in properties) { var hasSetter = HasSetter(property); //条件过滤 var filter = Filter(property); if (!hasSetter || !filter) { continue; } object sourceValue = null; sourceValue = property.GetValue(sourceDBEntity, null); //源数据为空不修改 if (sourceValue == null) { continue; } //目标值 var targetValue = targetDBEntity.GetValue(property.Name); //值不同才修改 if (sourceValue.Equals(targetValue)) { continue; } if (property.Name.Equals("EntityState")) { if (targetDBEntity.EntityState == EntityState.None) { sourceValue = targetDBEntity.GetType().Name.Equals("Connectivity_n") ? EntityState.Old_Nal_Nal : EntityState.Update; } else { continue; } } property.SetValue(targetDBEntity, sourceValue, null); } } } catch (Exception ex) { LogManager.Instance.Error(ex + string.Format("属性复制错误:{0} {1}", dbEntityObject.className, g3eObject.G3E_FID)); } }
public async Task <int> DeleteAsync(NpgsqlConnection connection, string table, DBEntityObject entry) { await OpenConnectionAsync(connection); var cmd = new NpgsqlCommand($"DELETE FROM {table} WHERE {entry.Column} = '{entry.Value}'", connection); var rowchanged = await cmd.ExecuteNonQueryAsync(); connection.Close(); return(rowchanged); }
private static HashSet <DBEntityObject> GetBrotherDBEntity(string className, DBEntity dbEntity, HashSet <DBEntityObject> copyDBEntity) { if (dbEntity != null) { var dbEntityObject = new DBEntityObject { className = className.Trim(), dbEntity = dbEntity }; copyDBEntity.Add(dbEntityObject); } return(copyDBEntity); }