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.
- Com o botão direito do mouse clique em Add –> New Project
- Selecione “Class Library”
- Digite Dominio no nome do projeto.
- 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:
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