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