Exemplo n.º 1
0
        public override string GetColumnName(Column a)
        {
            EntityInfo      b = (!string.IsNullOrEmpty(a.Owner)) ? GetEntity(a.Owner) : Query.Entities [0];
            ITranslatedName c = null;

            if (string.IsNullOrEmpty(a.Owner) && !Translator.TryGetName(b, a.Name, Query.IgnoreTypeSchema, out c))
            {
                return(QuoteExpression(a.Name));
            }
            var d = new StringBuilder();

            if (a.Name != DataAccessConstants.RowVersionPropertyName)
            {
                d.Append(QuoteExpression(b.Alias)).Append('.');
            }
            if (!string.IsNullOrEmpty(b.FullName))
            {
                d.Append(GetTranslatedName(Translator.GetName(b, a.Name, Query.IgnoreTypeSchema)));
            }
            else
            {
                d.Append(QuoteExpression(a.Name));
            }
            return(d.ToString());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Recupera o nome da coluna.
        /// </summary>
        /// <param name="column"></param>
        /// <returns></returns>
        public override string GetColumnName(Column column)
        {
            EntityInfo      entity = (!string.IsNullOrEmpty(column.Owner)) ? GetEntity(column.Owner) : Query.Entities[0];
            ITranslatedName name   = null;

            if (string.IsNullOrEmpty(column.Owner) && !Translator.TryGetName(entity, column.Name, Query.IgnoreTypeSchema, out name))
            {
                return(QuoteExpression(column.Name));
            }
            var result = new StringBuilder();

            if (column.Name != DataAccessConstants.RowVersionPropertyName)
            {
                result.Append(QuoteExpression(entity.Alias)).Append('.');
            }
            if (!string.IsNullOrEmpty(entity.FullName))
            {
                result.Append(GetTranslatedName(Translator.GetName(entity, column.Name, Query.IgnoreTypeSchema)));
            }
            else
            {
                result.Append(QuoteExpression(column.Name));
            }
            return(result.ToString());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Adiciona a tradução do nome.
        /// </summary>
        /// <param name="name">Nome a ser adiocionado</param>
        /// <returns>Retorna o próprio objeto</returns>
        private MySqlQueryParser AppendTranslatedName(ITranslatedName name)
        {
            var result = GetTranslatedName(name);

            if (result != null)
            {
                Append(result);
            }
            return(this);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Compara com outro nome.
        /// </summary>
        /// <param name="other"></param>
        /// <returns></returns>
        public int CompareTo(ITranslatedName other)
        {
            var name = other as TranslatedSelectPart;

            if (name != null)
            {
                return(string.Compare(this.Part, name.Part));
            }
            return(-1);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Compara com outro nome.
        /// </summary>
        /// <param name="other"></param>
        /// <returns></returns>
        public int CompareTo(ITranslatedName other)
        {
            var name = other as StoredProcedureName;

            if (name != null)
            {
                return(string.Compare(this.Schema + "." + this.Name, name.Schema + "." + name.Name));
            }
            return(-1);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Compara com outro nome.
        /// </summary>
        /// <param name="other"></param>
        /// <returns></returns>
        public int CompareTo(ITranslatedName other)
        {
            var name = other as TranslatedColumnName;

            if (name != null)
            {
                return(string.Compare(this.Name, name.Name));
            }
            return(-1);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Recupera o nome da coluna associado com as informações da entidade.
        /// </summary>
        /// <param name="entity">Entidade</param>
        /// <param name="propertyName">Nome da propriedade</param>
        /// <param name="ignoreTypeSchema">Identifica se é para ignorar o esquema do tipo.</param>
        /// <returns>Retorna o nome da entidade</returns>
        public virtual ITranslatedName GetName(EntityInfo entity, string propertyName, bool ignoreTypeSchema)
        {
            Exception       error  = null;
            ITranslatedName result = null;

            if (!TryGetName(entity, propertyName, ignoreTypeSchema, out result, out error))
            {
                throw error;
            }
            return(result);
        }
 /// <summary>
 /// Adiciona a a tradução do nome.
 /// </summary>
 /// <param name="name">Nome a ser traduzido</param>
 /// <param name="sqlCommand">Objeto <see cref="StringBuilder"/> no qual será adicionado texto</param>
 /// <returns>Retorna o próprio objeto</returns>
 private MySqlPersistenceSqlParser AppendTranslatedName(ITranslatedName name, StringBuilder sqlCommand)
 {
     if (name is TranslatedTableName)
     {
         var tableName = (TranslatedTableName)name;
         AppendQuoteExpression(tableName.Name, sqlCommand);
     }
     else if (name is TranslatedColumnName)
     {
         var columnName = (TranslatedColumnName)name;
         AppendQuoteExpression(columnName.Name, sqlCommand);
     }
     return(this);
 }
Exemplo n.º 9
0
 /// <summary>
 /// Recuper ao nome traduzido.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 private string GetTranslatedName(ITranslatedName name)
 {
     if (name is TranslatedTableName)
     {
         var tableName = (TranslatedTableName)name;
         return(QuoteExpression(tableName.Name));
     }
     else if (name is TranslatedColumnName)
     {
         var columnName = (TranslatedColumnName)name;
         return(QuoteExpression(columnName.Name));
     }
     else if (name is TranslatedSelectPart)
     {
         return(name.ToString());
     }
     return(null);
 }
Exemplo n.º 10
0
        /// <summary>
        /// Compara com outro nome.
        /// </summary>
        /// <param name="other"></param>
        /// <returns></returns>
        public int CompareTo(ITranslatedName other)
        {
            var name = other as TranslatedTableName;

            if (name != null)
            {
                var result = string.Compare(this.Schema, name.Schema);
                if (result == 0)
                {
                    result = string.Compare(this.Name, name.Name);
                }
                return(result);
            }
            else
            {
                return(-1);
            }
        }
Exemplo n.º 11
0
 /// <summary>
 /// Adiciona a a tradução do nome.
 /// </summary>
 /// <param name="name">Nome a ser traduzido</param>
 /// <param name="sqlCommand">Objeto <see cref="StringBuilder"/> no qual será adicionado texto</param>
 /// <returns>Retorna o próprio objeto</returns>
 private DefaultPersistenceSqlParser AppendTranslatedName(ITranslatedName name, StringBuilder sqlCommand)
 {
     if (name is TranslatedTableName)
     {
         var tableName = (TranslatedTableName)name;
         if (!string.IsNullOrEmpty(tableName.Schema))
         {
             AppendQuoteExpression(tableName.Schema, sqlCommand).Append(".", sqlCommand);
         }
         AppendQuoteExpression(tableName.Name, sqlCommand);
     }
     else if (name is TranslatedColumnName)
     {
         var columnName = (TranslatedColumnName)name;
         AppendQuoteExpression(columnName.Name, sqlCommand);
     }
     return(this);
 }
Exemplo n.º 12
0
 private string GetTranslatedName(ITranslatedName a)
 {
     if (a is TranslatedTableName)
     {
         var b = (TranslatedTableName)a;
         var c = new StringBuilder();
         if (!string.IsNullOrEmpty(b.Schema))
         {
             c.Append(QuoteExpression(b.Schema)).Append(".");
         }
         return(c.Append(QuoteExpression(b.Name)).ToString());
     }
     else if (a is TranslatedColumnName)
     {
         var d = (TranslatedColumnName)a;
         return(QuoteExpression(d.Name));
     }
     else if (a is TranslatedSelectPart)
     {
         return(a.ToString());
     }
     return(null);
 }
Exemplo n.º 13
0
 /// <summary>
 /// Recuper ao nome traduzido.
 /// </summary>
 /// <param name="name"></param>
 /// <returns></returns>
 private string GetTranslatedName(ITranslatedName name)
 {
     if (name is TranslatedTableName)
     {
         var tableName = (TranslatedTableName)name;
         var result    = new StringBuilder();
         if (!string.IsNullOrEmpty(tableName.Schema))
         {
             result.Append(QuoteExpression(tableName.Schema)).Append(".");
         }
         return(result.Append(QuoteExpression(tableName.Name)).ToString());
     }
     else if (name is TranslatedColumnName)
     {
         var columnName = (TranslatedColumnName)name;
         return(QuoteExpression(columnName.Name));
     }
     else if (name is TranslatedSelectPart)
     {
         return(name.ToString());
     }
     return(null);
 }
Exemplo n.º 14
0
        /// <summary>
        /// Recupera o nome da coluna associado com as informações da entidade.
        /// </summary>
        /// <param name="entity">Entidade</param>
        /// <param name="propertyName">Nome da propriedade</param>
        /// <param name="ignoreTypeSchema">Identifica se é para ignorar o esquema do tipo.</param>
        /// <param name="name"></param>
        /// <returns>Retorna o nome da entidade</returns>
        public virtual bool TryGetName(EntityInfo entity, string propertyName, bool ignoreTypeSchema, out ITranslatedName name)
        {
            Exception error = null;

            return(TryGetName(entity, propertyName, ignoreTypeSchema, out name, out error));
        }
Exemplo n.º 15
0
 /// <summary>
 /// Recupera o nome da coluna associado com as informações da entidade.
 /// </summary>
 /// <param name="entity">Entidade</param>
 /// <param name="propertyName">Nome da propriedade</param>
 /// <param name="name"></param>
 /// <returns>Retorna o nome da entidade</returns>
 public virtual bool TryGetName(EntityInfo entity, string propertyName, out ITranslatedName name)
 {
     return(TryGetName(entity, propertyName, false, out name));
 }
Exemplo n.º 16
0
 /// <summary>
 /// Adiciona a tradução do nome.
 /// </summary>
 /// <param name="name">Nome a ser adiocionado</param>
 /// <returns>Retorna o próprio objeto</returns>
 private OracleQueryParser AppendTranslatedName(ITranslatedName name)
 {
     Append(GetTranslatedName(name));
     return(this);
 }
Exemplo n.º 17
0
 /// <summary>
 /// Adiciona a tradução do nome.
 /// </summary>
 /// <param name="name">Nome a ser adiocionado</param>
 /// <returns>Retorna o próprio objeto</returns>
 private DefaultSqlQueryParser AppendTranslatedName(ITranslatedName name)
 {
     Append(GetTranslatedName(name));
     return(this);
 }
Exemplo n.º 18
0
        /// <summary>
        /// Recupera o nome da coluna associado com as informações da entidade.
        /// </summary>
        /// <param name="entity">Entidade</param>
        /// <param name="propertyName">Nome da propriedade</param>
        /// <param name="ignoreTypeSchema">Identifica se é para ignorar o esquema do tipo.</param>
        /// <param name="translatedName">Nome traduzido que foi encontrado.</param>
        /// <param name="error">Erro ocorrido.</param>
        /// <returns>Retorna o nome da entidade</returns>
        private bool TryGetName(EntityInfo entity, string propertyName, bool ignoreTypeSchema, out ITranslatedName translatedName, out Exception error)
        {
            entity.Require("entity").NotNull();
            entity.Require("columnName").NotNull();
            string name = null;

            if (entity.SubQuery != null || ignoreTypeSchema)
            {
                name = propertyName;
            }
            else
            {
                var typeMetadata = GetTypeMetadata(entity.FullName);
                IPropertyMetadata propertyMetadata = null;
                if (!typeMetadata.TryGet(propertyName, out propertyMetadata))
                {
                    if (propertyName == DataAccessConstants.RowVersionPropertyName)
                    {
                        name = DataAccessConstants.RowVersionColumnName;
                    }
                    else if (StringComparer.InvariantCultureIgnoreCase.Equals(propertyName, "TableId"))
                    {
                        var identityMetadatas  = typeMetadata.GetKeyProperties();
                        var identityEnumerator = identityMetadatas.GetEnumerator();
                        identityEnumerator.MoveNext();
                        var identityMetadata = identityEnumerator.Current;
                        if (identityEnumerator.MoveNext())
                        {
                            translatedName = null;
                            error          = new NotSupportedException(ResourceMessageFormatter.Create(() => Properties.Resources.NotSupportedException_TableIdOnlySupportedInNonCompositePrimaryKeyTable, typeMetadata.FullName).Format());
                            return(false);
                        }
                        else
                        {
                            name = identityMetadata.ColumnName;
                        }
                    }
                    else
                    {
                        translatedName = null;
                        error          = new Exception(ResourceMessageFormatter.Create(() => Properties.Resources.Exception_PropertyNotMappedForType, propertyName, typeMetadata.FullName).Format());
                        return(false);
                    }
                }
                else
                {
                    name = propertyMetadata.ColumnName;
                }
            }
            translatedName = new TranslatedColumnName(name, entity.Alias, null);
            error          = null;
            return(true);
        }