/// <summary> /// Constrói uma instancia do mapeamento da classe. /// </summary> /// <param name="typeInfo">Informações do tipo.</param> /// <param name="table">Nome da tabela equivalente do BD.</param> /// <param name="schema">Esquema onde a tabela está inserida.</param> /// <param name="baseDAO">Informações sobre a DAO relacionada.</param> /// <param name="provider">Informações do Provider relacionado.</param> /// <param name="properties">Propriedades mapeadas.</param> public ClassMapping(TypeInfo typeInfo, string table, string schema, BaseDAOMapping baseDAO, ProviderMapping provider, IEnumerable <PropertyMapping> properties) { if (typeInfo == null) { throw new ArgumentNullException("typeInfo"); } TypeInfo = typeInfo; if (string.IsNullOrEmpty(table)) { Table = typeInfo.Name; } else { Table = table; } Schema = schema; BaseDAO = baseDAO; Provider = provider; Properties = new List <PropertyMapping>(); if (properties != null) { foreach (var i in properties) { if (!Properties.Exists(f => f.Name == i.Name)) { Properties.Add(i); } } } }
/// <summary> /// Constrói uma instancia com base nos dados do elemento. /// </summary> /// <param name="element"></param> /// <param name="mappingNamespace">Namespace informado no mapeamento.</param> /// <param name="mappingAssembly">Assembly informado no mapeamento.</param> /// <param name="defaultProviderName">Nome do provider padrão que poderá ser usado pela classe.</param> /// <param name="defaultProviderConfigurationName">Nome da configuração do provedor que podera ser usada</param> /// <param name="defaultConnectionString">String de conexão padrão que poderá ser usada.</param> /// <param name="defaultSchema">Esquema padrão da tabela da classe.</param> public ClassMapping(XmlElement element, string mappingNamespace, string mappingAssembly, string defaultProviderName, string defaultProviderConfigurationName, string defaultConnectionString, string defaultSchema) { var name = GetAttributeString(element, "name", true); this.TypeInfo = new TypeInfo(name, mappingNamespace, mappingAssembly); Table = GetAttributeString(element, "table", this.TypeInfo.Name); Schema = GetAttributeString(element, "schema"); if (string.IsNullOrEmpty(Schema)) { Schema = defaultSchema; } XmlElement baseDAOElement = FirstOrDefault <XmlElement>(element.GetElementsByTagName("baseDAO")); if (baseDAOElement != null) { BaseDAO = new BaseDAOMapping(baseDAOElement, mappingNamespace, mappingAssembly); } var providerElement = FirstOrDefault <XmlElement>(element.GetElementsByTagName("provider")); if (providerElement != null) { Provider = new ProviderMapping(providerElement); } else if (!string.IsNullOrEmpty(defaultProviderConfigurationName)) { Provider = new ProviderMapping(defaultProviderName, defaultProviderConfigurationName, defaultConnectionString); } Properties = new List <PropertyMapping>(); foreach (XmlElement i in element.GetElementsByTagName("property")) { var pm = new PropertyMapping(i, mappingNamespace, mappingAssembly); if (!Properties.Exists(f => f.Name == pm.Name)) { Properties.Add(pm); } } }