none
Dificuldade em utilizar polimorfismo e ActiveRecord no MVC 3.0 RRS feed

  • Pergunta

  • Boa noite.

    Seguinte estou tendo uma certa dificuldade de achar uma solução, se for possivel, ficarei grato, a guestão é a seguinte, estou desenvolvendo um sistema que terá classes virtuais as quais serão sobregravadas por outras classes de acordo com a requisição nos controllers, o detalhe é que não estou conseguindo configurar o ActiveRecord nas classes que vão sobregravar as classes virtuais, pois as mesmas já herdam da classe principal, pois a mesma possui parametros que são comun entre as sub-classes, abaixo segue os códigos para me fazer melhor entendido.

    <!--CLASSE PRINCIPAL QUE SERÁ ACESSADA DO CONTROLLER-->
    
    using Castle.ActiveRecord;
    using System.ComponentModel.DataAnnotations;
    using DataAnnotationsExtensions;
    using Castle.ActiveRecord.Framework;
    using System.Collections.Generic;
    
    namespace GsInstitucional.Models
    {
        public class Imagens : ActiveRecordLinqBase<Banner>
        {
            [PrimaryKey(Generator = PrimaryKeyType.Identity)]
            public int Id { get; set; }
    
            [Required(ErrorMessage = "Digite um nome para a imagem.")]
            [Property]
            public string Nome { get; set; }
    
            [Property]
            public string CaminhoImagem { get; set; }
    
            
            public virtual Imagens Consultar(Imagens parametros)
            {
                throw new System.NotImplementedException();
            }
    
    
            public virtual IList<Imagens> ListarAtivas(Imagens parametros)
            {
                throw new System.NotImplementedException();
            }
        }
    }
    <!--UMA DAS SUB-CLASSES QUE VÃO FAZER UM OVERRIDE NAS CLASSES VIRTUAIS DA PRIMEIRA CLASSE-->
    
    using Castle.ActiveRecord;
    using System.ComponentModel.DataAnnotations;
    using Castle.ActiveRecord.Framework;
    using System.Collections.Generic;
    
    namespace GsInstitucional.Models
    {
        [ActiveRecord]
        public class Banner : Imagens
        {
            [Property]
            public string Url { get; set; }
    
            [Property]
            public bool Ativo { get; set; }
    
            public override Imagens Consultar(Imagens parametros)
            {
                Imagens img = Imagens.Find(parametros.Id);
                return img;
            }
    
            public override IList<Imagens> ListarAtivas(Imagens parametros)
            {
                IList<Imagens> ativos = Imagens.FindAll();
                return ativos;
            }
        }
    }

    Na primeira classe eu fiz ela herdar o ActiveRecordLinqBase<Banner> assim o mesmo funciona, porem dessa forma fico engessado, pois a idéia é que ela seja flexivel a ponto de receber a solicitação e automáticamente direcionar a sub-classe que conterá o ActiveRecordLinqBase<...> Porém as sub-classes já herdam da classe principal, e multiplas heranças o c# não aceita, Teria alguma idéia para resolver esse problema? Grato.

    sábado, 18 de fevereiro de 2012 04:39

Todas as Respostas