Página Inicial > Entity Framework > Entity Framework 4 – POCO Code Only

Entity Framework 4 – POCO Code Only

Na versão “beta” deste blog, fiz um post mostrando como utilizar o POCO (Plain Old CLR Object) e as novas funcionalidades disponíveis no Feature CTP 4 para ADO.Net Entity Framework. Porém resolvi reescrever o post para explicar melhor cada funcionalidade e ir aprofundando a cada post.

Antes de começar faça o download do CTP 4.

  • Abra o Visual Studio 2010
  • File –> New –> New Project
  • Selecione “Windows” no menu à esquerda e depois “Console Application”
  • Digite PocoEF4 como nome do projeto

Com a nossa solução criada, criaremos mais dois projetos para o domínio e a persistência.

  1. Com o botão direito do mouse clique em Add –> New Project
  2. Selecione “Class Library”
  3. Digite Dominio no nome do projeto.
  4. Repita os passos 1 e 2 e coloque o nome do projeto como Persistencia

Após adicionar os projetos sua solução deve parecer como na imagem abaixo:

ScreenShot001

Vamos então criar o nosso domínio com as classes POCO. No projeto domínio crie duas classes com os nomes Blog e Post conforme o código abaixo

public class Blog
{
    public virtual Guid ID { get; set; }
    public virtual string BlogName { get; set; }
    private IList<post> _Posts = new List<post>(); 

    public virtual IList<post> Posts
    {
        get { return _Posts; }
        set { _Posts = value; }
    }
}
public class Post
{
    public virtual Guid ID { get; set; }
    public virtual Blog Blog { get; set; }
    public virtual string PostTitle { get; set; }
}

Para começar a utilizar o CTP 4 adicione a referência ao assembly Microsoft.Data.Entity.Ctp na tab .Net e adicione também o assembly System.Data.Entity.

Criado o domínio, temos que criar agora o contexto de dados. Crie uma classe no projeto Persistencia com o nome BlogContext conforme o código abaixo

using System.Data.Entity;

public class BlogContext : DbContext
{
    public BlogContext() : base(ConfigurationManager.ConnectionStrings["BlogConnection"].ConnectionString)
    {
    }
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post>
 Posts { get; set; }
}

Por último configure a conexão com o banco de dados, segue um exemplo abaixo

<configuration>
  <connectionStrings>
    <add name="BlogConnection" connectionString ="Data Source=.;Initial Catalog=Blog;Integrated Security=SSPI;" providerName ="System.Data.SqlClient.SqlConnection"/>
  </connectionStrings>
</configuration>

Acessando os dados

class Program
{
    static void Main(string[] args)
    {
        using (var context = new BlogContext())
        {
            var blog = new Blog { ID = Guid.NewGuid(), BlogName = "AndrePassos.net" };
            context.Blogs.Add(blog);
            int rows = context.SaveChanges();

            Console.WriteLine("{0} entidades atualizadas no banco de dados", rows);
            Console.ReadKey();
        }
    }
}

Agora já podemos rodar o programa e verificar que um novo blog foi adicionado.

No próximo post irei explicar mais detalhadamente sobre o DbContext e o ModelDiscovery. Até a próxima

Categories: Entity Framework Tags: ,
  1. 10, setembro, 2010 em 01:06 | #1

    Is it really POCO if you have to declare properties as virtual, which you would NOT have done if you were using any other ORM?

    • André Passos
      10, setembro, 2010 em 08:20 | #2

      if you are using almost all others ORM you have to use virtuals in POCO classes

  1. Nenhum trackback ainda.