none
Duda con repositorio generico y entity framework RRS feed

  • Pregunta

  • Saludos, estoy usando c# con Visual Studio 2012 y Entity Framework 5. Estoy trabajando con repositorio generico e injección de dependencias y tengo las siguiente dudas:

    Tengo implementado la siguiente interfaz generica

    namespace Dominio.Nucleo
    {
        public interface IRepositorio<TEntity>
         where TEntity : class
        { 
            void Agregar(TEntity item);
            void Attach(TEntity item);
            void Borrar(object id);
            void Borrar(TEntity item);
            //Dominio.Entidades.SisTranGenModelContainer contexto { get; set; }
            void Detach(TEntity item);
            System.Collections.Generic.IEnumerable<TEntity> GetAll();
            TEntity GetById(object id);
            System.Collections.Generic.IEnumerable<TEntity> GetElementosFiltrado(System.Linq.Expressions.Expression<Func<TEntity, bool>> filtro);
            System.Collections.Generic.IEnumerable<TEntity> GetElementosFiltrado<S>(System.Linq.Expressions.Expression<Func<TEntity, bool>> filtro, System.Linq.Expressions.Expression<Func<TEntity, S>> expresionOrderBy, bool ascendente);
            void Modificar(TEntity item);
        }
    }//namespace.

    La implementación de la interfaz generica la tengo en un proyecto de acceso de datos, en dicha implementación tengo un constructor que solicita el dbcontext; luego tengo la siguiente interfaz en un proyecto aparte en mi capa de dominio

        public interface IEmpresaRepository: IRepositorio<Empresa>
        {
        }//fin de interface.

    Ahora bien, aparte de los metodos heredados de Irepositorio, quiero implementar un metodo adicional, para lo cual en mi proyecto de repositorios tengo lo siguiente:

        public class EmpresaRepositorio: Repositorio<Empresa>, Dominio.Global.EmpresaDominio.IEmpresaRepository
        {
        }//fin de clase.

    Al compilar el sistema me envia el siguiente mensaje

    Error 1 'Datos.Repositorio.Nucleo.Repositorio<Dominio.Entidades.Empresa>' no contiene un constructor que tome 0 argumentos C:\Desarrollo\SuperDespensa\SisTranGen\Datos.Repositorio\Global\EmpresaRepositorio.cs 12 18 Datos.Repositorio

    Me podrían ayudar a averiguar por da este error. ?

    Y mi otra consulta es que trate de implementar una propiedad en IRepositorio (Esta entre comentarios) que devolviera el DbContext pero no logro que el sistema me lo reconozca en la implementación de la interfaz a pesar que he agregado multiples referencias. En la clase que implementa Irepositorio no tengo problemas, pero no logro encontrar la referencia para mi proyecto donde se implementa IRepositorio.

    Gracias por su ayuda

    Se despide, German

    viernes, 21 de junio de 2013 6:02

Todas las respuestas

  •   public class EmpresaRepositorio: Repositorio<Empresa>, Dominio.Global.EmpresaDominio.IEmpresaRepository
      {
         public EmpresaRepositorio(Mydbcontext context): base(context)
         {
         }
      }

    • Propuesto como respuesta Alonso-Merino sábado, 28 de febrero de 2015 0:22
    sábado, 28 de febrero de 2015 0:21