Visual Basic.NET - Repositorio generico c#

   
Vista:

Repositorio generico c#

Publicado por Sergio (2 intervenciones) el 29/05/2015 17:56:59
Hola estoy empezando a programar con entityframework en c#. He leido por foros pero no he encontrado mi solución...

Estoy Creando mi repositorio:

1
2
3
4
5
6
7
public interface IRepositorio<T>
        :IDisposable
        where T : class
    {
        T BusquedaPorId(string name);
        List<T> BusquedaPorNombre(string Request) //(Devuelve la lista de las personas que contengan como nombre "name")
    }

Ahora uso mi irepositorio:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Repositorio<TEntity>
        : IRepositorio<TEntity>
        where TEntity : class
    {
        #region Campos
        private MiContexto Contexto { get; set; }
        public DbSet<TEntity> Entidades { get; private set; }
        #endregion
 
        #region Constructor
        public Repositorio(MiContexto contexto)
        {
            if (contexto == null) throw new ArgumentNullException("contexto");
 
            Contexto = contexto;
            Entidades = contexto.Set<TEntity>();
 
        }
 
public TEntity BusquedaPorId(string Request)
        {
            var resultado  =  Contexto.Persona.Where(Persona=> Persona.ID== Request).First();
            return null;
        }
 
        public List<TEntity> SerachByAuthor(string Request)
        {
 
            var resultado = Contexto.Persona.Where(Persona=> Persona.Nombre.Contains(Request));
 
            return null;
        }


Cuando en mi programa, creo el repositorio con el contexto todo me va bien hasta que intento retornar los resultados de mis funciones(aqui puestos a null), porque dice que no se puede convertir resultado que es de tipo persona a List<TEntity>......... He probado a hacer varios cast, a poner .ToList();.... pero nada no hay manera....
Alguien me puede ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Repositorio generico c#

Publicado por Sergio (2 intervenciones) el 29/05/2015 18:59:11
1
2
3
4
5
6
7
public List<TEntity> SerachByAuthor(string Request)
{
           var resultado = Contexto.Persona.Where(Persona => Persona.Author.Contains(Request)).ToList();
            List<TEntity> aux = resultado.AsQueryable().Cast<TEntity>().ToList();
 
            return aux;
}



Esta es la solución para SerachByAuthor Para el otro metodo será parecido, hacer el cast, para transformar los datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar