Nesta segunda parte do tutorial vou continuar a trabalhar na camada de dados da aplicação, o Entity Framework já disponibiliza um meio padrão para o acesso a dados, que funciona perfeitamente com aplicações WPF, porém neste artigo quero ter uma maior flexibilidade na aplicação e por isso vou comentar duas outras formas de acessar os dados com Entity Framework:
- ADO.NET POCO Entity Generator
- ADO.NET Self-Tracking Entity Generator
A Primeira forma permite a possibilidade de trabalhar com POCO (Plain Old CLR Object) , esse padrão pode ser implementado através de uma extensão do Visual Studio 2010, para instalar basta ir no menu Tools - Extension Manager , clique em Online Gallery e digite no campo de busca a palavra T4, T4 (Text Template Transformation Toolkit) é um editor que possui um template POCO para o ADO.NET Entity Framework 4.
Instale as seguintes opções:
• tangible T4 Editor
• ADO.NET C# POCO Entity Generator
• ADO.NET C# Web Site POCO Entity Generator
Selecione o opção ADO.NET POCO Entity Generator e dê o nome de ModeloPOCO.tt e clique em Add.
Note que em seu projeto foram adicionados dois arquivos com extensão tt, são eles ModelPOCO.Context.tt e ModelPOCO.tt, dentro de ModelPOCO.tt temos os arquivos ModelPOCO.cs e Contato.cs . Esse último é a classe entidade que você poderá utilizar em outras camadas do seu projeto.
Em nosso projeto vamos implementar o padrão MVVM, que veremos mais detalhes nos próximos tutoriais, esse padrão permite separar de uma forma mais elegante o designer da aplicação do acesso aos objetos que manipulam os dados, para auxiliar nesse processo nossas entidades podem implementar a interface INotifyPropertyChanged , essa interface auxilia a informar qualquer mudança nas propriedades de nossas entidades, assim uma mudança via código refletirá na tela sem que o programador precise informar ao elemento que o apresenta, por exemplo, vamos supor que um ListBox tenha uma listagem de e-mails, e um dos itens é o email alexandre.ts@gmail.com e dentro de um botão você modifica via código a propriedade email do seu objeto para alexandre@silverlight.net.br, através de binding essa mudança via código refletirá no ListBox sem que precise criar algum código C# para essa finalidade, para que isso ocorra, nossas entidades podem implementar a interface INotifyPropertyChanged.
Para implementar a interface INotifyPropertyChanged em nossas entidades de forma automática vamos utilizar o ADO.NET Self-Tracking Entity Generator, para isso remova os dois arquivos gerados pelo template anterior, que são ModelPOCO.Context.tt e ModelPOCO.tt, e clique novamente em Add Code Generation Item e selecione a opção ADO.NET Self-Tracking Entity Generator e dê o nome de ModelContato e clique em Add, os arquivos ModelContato.Context.tt e ModelContato.tt foram adicionados ao projeto e dentro de ModelContato.tt temos a entidade Contato.cs que implementa as interfaces IObjectWithChangeTracker e INotifyPropertyChanged.
No próximo tutorial veremos como utilizar essas novas classes que foram geradas pelo ADO.NET Self-Tracking Entity Generator, neste momento nosso projeto possui a seguinte estrutura:


























