none
Consulta Entity - IList<TSource> GetWhere(Expression<Func<TSource, bool>> predicate) RRS feed

  • Pergunta

  • O projeto baseados em repository pattern, Elo.Framework.Data que está codeplex tem o método abaixo que atenção. Como utilizo esse médoto?

    Desde já grato.

        public interface IRepository<TSource> where TSource : class
        {

            IList<TSource> GetWhere(Expression<Func<TSource, bool>> predicate);

        }

            /// <summary>
            /// Retorna os objetos da entidade manipulada de acordo a condição informada.
            /// </summary>
            /// <param name="predicate">Representa a condição a ser testada pela entidade</param>
            /// <returns>Retorna uma lista dos objetos</returns>
            public IList<TSource> GetWhere(Expression<Func<TSource, bool>> predicate)
            {
                try
                {
                    IList<TSource> result = Context.CreateObjectSet<TSource>().Where(predicate).ToList();
                    return result;
                }
                catch (Exception ex)
                {
                    if (ex.InnerException != null)
                        throw new Exception(ex.InnerException.Message, ex);
                    throw new Exception(ex.Message, ex);
                }
            }


    terça-feira, 26 de junho de 2012 16:33

Respostas

  • Olá Ronaldo,

    No caso vc precisa passar uma expressão lambda com uma clausula que deseja que seja verdadeira. Por exemplo, no código abaixo um exemplo de como implementar a interface IRepository.

    public interface IRepository<TSource> where TSource : class { IList<TSource> GetWhere(Expression<Func<TSource, bool>> predicate); } public class Customer { public string Nome { get; set; } } public class MyRepository : IRepository<Customer> { public IList<Customer> GetWhere(Expression<Func<Customer, bool>> predicate) { // Retorna dados dos clientes...

    } }

    E aqui, um exemplo de como executar uma consulta:

    MyRepository rep = new MyRepository();
    
    rep.GetWhere(p => p.Nome == "TESTE");

    Veja que estou passando por parâmetro uma Lambda com uma condição a ser atendida, no caso 'p => p.Nome == "TESTE"'.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 00:41
    Moderador

Todas as Respostas

  • Olá Ronaldo,

    No caso vc precisa passar uma expressão lambda com uma clausula que deseja que seja verdadeira. Por exemplo, no código abaixo um exemplo de como implementar a interface IRepository.

    public interface IRepository<TSource> where TSource : class { IList<TSource> GetWhere(Expression<Func<TSource, bool>> predicate); } public class Customer { public string Nome { get; set; } } public class MyRepository : IRepository<Customer> { public IList<Customer> GetWhere(Expression<Func<Customer, bool>> predicate) { // Retorna dados dos clientes...

    } }

    E aqui, um exemplo de como executar uma consulta:

    MyRepository rep = new MyRepository();
    
    rep.GetWhere(p => p.Nome == "TESTE");

    Veja que estou passando por parâmetro uma Lambda com uma condição a ser atendida, no caso 'p => p.Nome == "TESTE"'.

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique
    Entity Framework - Brasil: https://www.facebook.com/EntityFrameworkBrasil

    quarta-feira, 27 de junho de 2012 00:41
    Moderador
  • Valeu Fernando Henrique.

    Ronaldo Peixoto


    quinta-feira, 28 de junho de 2012 00:15