/// <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> /// <returns>Retorna o nome da entidade</returns> public virtual Colosoft.Query.ITranslatedName GetName(Colosoft.Query.EntityInfo entity, string propertyName) { Exception error = null; Colosoft.Query.ITranslatedName result = null; if (!TryGetName(entity, propertyName, out result, out error)) { throw error; } return(result); }
/// <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="translatedName">Nome traduzido que foi encontrado.</param> /// <param name="error">Erro ocorrido.</param> /// <returns>Retorna o nome da entidade</returns> private bool TryGetName(Colosoft.Query.EntityInfo entity, string propertyName, out Colosoft.Query.ITranslatedName translatedName, out Exception error) { entity.Require("entity").NotNull(); entity.Require("columnName").NotNull(); Colosoft.Data.Schema.IPropertyMetadata propertyMetadata = null; Colosoft.Data.Schema.ITypeMetadata typeMetadata = null; try { typeMetadata = GetTypeMetadata(entity.FullName); propertyMetadata = typeMetadata[propertyName]; } catch { } string name; if (propertyMetadata == null) { if (StringComparer.InvariantCultureIgnoreCase.Equals(propertyName, "TableId")) { var identityMetadatas = typeMetadata.GetKeyProperties(); using (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.Name; } } } else { name = propertyName; } } else { name = propertyMetadata.Name; } translatedName = new TranslatedPropertyName(name, entity.Alias, null); error = null; return(true); }
/// <summary> /// Recupera o nome da tabela associado com a entidade. /// </summary> /// <param name="entity"></param> /// <param name="ignoreTypeSchema"></param> /// <returns></returns> public virtual Colosoft.Query.ITranslatedName GetName(Colosoft.Query.EntityInfo entity, bool ignoreTypeSchema) { throw new NotImplementedException(); }
/// <summary> /// Recupera o nome da tabela associado com a entidade. /// </summary> /// <param name="entity">Entidade</param> /// <returns>Retorna o nome da entidade</returns> public virtual Colosoft.Query.ITranslatedName GetName(Colosoft.Query.EntityInfo entity) { throw new NotImplementedException(); }
/// <summary> /// Recupera o nome da coluna associado com as informações da entidade. /// </summary> /// <param name="entity"></param> /// <param name="propertyName"></param> /// <param name="ignoreTypeSchema"></param> /// <param name="name"></param> /// <returns></returns> public virtual bool TryGetName(Colosoft.Query.EntityInfo entity, string propertyName, bool ignoreTypeSchema, out Colosoft.Query.ITranslatedName name) { return(TryGetName(entity, propertyName, out name)); }
/// <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> /// <returns>Retorna o nome da entidade</returns> public virtual bool TryGetName(Colosoft.Query.EntityInfo entity, string propertyName, out Colosoft.Query.ITranslatedName name) { Exception error = null; return(TryGetName(entity, propertyName, out name, out error)); }
/// <summary> /// Recupera o nome da coluna associado com as informações da entidade. /// </summary> /// <param name="entity"></param> /// <param name="propertyName"></param> /// <param name="ignoreTypeSchema"></param> /// <returns></returns> public virtual Colosoft.Query.ITranslatedName GetName(Colosoft.Query.EntityInfo entity, string propertyName, bool ignoreTypeSchema) { return(GetName(entity, propertyName)); }