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