sexta-feira, 23 de dezembro de 2011

Começar a usar o .Net Entity Framework - 2

Depois de criado o projeto Windows Forms Application, e gerado o modelo de dados a partir da base de dados, vamos ver como podemos aceder à base de dados através do modelo, usando um pequeno exemplo ilustrativo.

No form Form1 criado automaticamente ao criar o projecto Windows Forms Application, vamos criar uma comboBox, arrastando a partir da toolbox. 


No separador de propriedades (Properties) mudemos-lhe o nome para viaturasBox1.





Depois, acrescentamos um event handler para o evento Load do form Form1 (fazer duplo click sobre o fundo do form Form1), e criamos o método correspondente ao event handler (Form1_Load()):

namespace ejemploEntityFramework
{
    public partial class Form1 : Form
    {
        carRentEntities dbContext;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dbContext = new carRentEntities();

            viaturasBox1.DataSource = dbContext.Viaturas;

            viaturasBox1.DisplayMember = "matricula";
            viaturasBox1.ValueMember = "Id";
        }

... ... ... ... ... ...

Este método irá preencher a comboBox viaturasBox1 quando o Form1 iniciar.
Vejamos como isso é feito em mais detalhe:
   - A linha
            carRentEntities dbContext;

     declara a variável dbContext do tipo carRentEntities, que corresponde ao modelo de dados criado.

   - A linha
            dbContext = new carRentEntities();

     cria o objecto com o modelo de dados, responsável por fazer o mapeamento com a base de dados, e associa-o à variável dbContext.

   - A linha
            viaturasBox1.DataSource = dbContext.Viaturas;

     associa Viaturas, no contexto criado anteriormente, à propriedade DataSource da comboBox, indicando que é daí que devem ser lidos os dados para a comboBox.

   - As linhas
            viaturasBox1.DisplayMember = "matricula";
           
viaturasBox1.ValueMember = "Id";   

     identificam os atributos de Viatura que devem ser mostrados na comboBox (propriedade DisplayMember) e devolvido como propriedade selectedValue da comboBox quando seleccionada uma Viatura (ValueMember).

Este excerto de código lê todas as linhas da tabela Viatura e preenche a comboBox.

Se, por exemplo, pretendesse-mos filtrar os dados por um qualquer critério poderemos usar LiNQ para o fazer, antes de associarmos o resultado à comboBox.

Por exemplo, a linha
            viaturasBox1.DataSource = dbContext.Viaturas;


poderia ser substituida por:

            List<Viatura> listaViaturas;
            IQueryable<Viatura> viaturasQuery = from v in dbContext.Viaturas
                                                where v.marca.Equals("SEAT")
                                                select v;
            listaViaturas = viaturasQuery.ToList<Viatura>();
            viaturasBox1.DataSource = listaViaturas;

Neste caso, a comboBox seria preenchida apenas com as viaturas cuja marca fosse "SEAT".

Num próximo artigo iremos ver como actualizar a base de dados usando o modelo criado com o Entity Framework.


Outros artigos relacionados:
    - ADO.Net Entity Framework
    - Começar a usar o .Net Entity Framework - 1




Sem comentários:

Enviar um comentário