Example #1
0
        /// <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));
            }
        }
Example #2
0
    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);
    }
Example #3
0
 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);
 }