Junho 2009 - Posts

LINQ - Pesquisa simples num objecto

O LINQ é uma poderosa ferramenta que nos possibilita efectar pesquistas numa lista. Essas listas podem ser criadas a partir da base de dados ou gerada na aplicação.
A vantagem de uasr o LINQ nestas listas é que cria independencias na forma como filtramos as listas sem ter que nos preocupar com a sua origem.

Nos próximos exemplos irei usar uma lista que será constituida pelo seguinte objecto:

public class ObjectTest1
{
  
public string Field1 { get; set; }
  
public string Field2 { get; set; }
}

Que será preenchido por este método:

private static List<ObjectTest1> ReturnList()
{
  
List<ObjectTest1> lstRET = new List<ObjectTest1>();
   lstRET.Add (
new ObjectTest1() { Field1="Row11",Field2="Row12" });
   lstRET.Add (
new ObjectTest1() { Field1="Row21",Field2="Row22" });

   return
lstRET;
}

Para proceder a uma pesquisa simples poderiamos ter o seguinte método:

private static IQueryable<ObjectTest1> BaseQuery()
{
  
var query = from myList in ReturnList()
                   
select myList;
  
return query.AsQueryable<ObjectTest1>();
}

Que poderia ser executado da seguinte forma:

IQueryable <ObjectTest1> query = BaseQuery();

Na variável query temos um objecto do tipo IQueryable que podemos efectuar o bind com qualquer DataGrid para apresentar os nossos dados.
Se pretendessemos aplicar um filtro, bastava adicionar condições Where à nossa linha de comando:

IQueryable <ObjectTest1> query = BaseQuery().Where(obj => obj.Field2 == "Row12");

Caso queriam ver o resultado da nossa linha de comando não se esqueçam de executar o comando ToList() assim:

List <ObjectTest1> lstAUX = query.ToList();

O tem a vossa nova lista com os filtros aplicados.

Posted por Paulo Aboim Pinto with no comments
Filed under:

Voltar a falar de .NET

Como estão caros .NETianos?

Sei que não tenho escrito nada neste blog há já algum tempo, não porque não tenho nada de interessante para escrever, mas, porque tirei umas férias de trabalhar fora do horário normal de trabalho. Felizmente o bichinho ficou e tenho andado cheio de saudades de escrever sobre o que tenho feito.

Sei que não me expresso da melhor forma. Isso se deve ao facto de escrever com pouco regularidade (fazer documentação, análise, etc.), mas, se mere perguntarem sobre as regras de codificação, essas eu tenho na ponta dos dedos e (acho eu) falho muito menos.
Este blog é também uma forma de me obrigar a formalizar os meus pensamentos e apresentar de uma forma estruturada os temas que quero debater, treinado a minha capacidade de escrita e de expressão.

Desde já peço desculpa por imperfeições nas expressão, mas, refugiar-me e não tentar definitivamente não é solução.

Vou focar esta minha volta em temas relacionados com o Olimpo - CMS, LINQ e MVC. É verdade que estes forma os últimos temas que abordei andes de tirar férias, mas agora tem a diferença de estarem interligados.
Vou refazer o Olimpo CMS usando agora as mais recentes metodologias de desenvolvimento da Microsoft (MVC e LINQ) e quem sabe ainda terei espaço para mais alguma coisa.

Os primeiros passos serão no estudo do LINQ e nas diversas formas que temos para constuir as nossas linhas de comando SQL partindo das necessidades do Olimpo CMS.


Abraços
Paulo Aboim Pinto

Posted por Paulo Aboim Pinto with no comments