Entity FrameworkCode FirstMigrationsRafael LeonhardtTwitter: @MumHaBRBlog: www.rafaelleonhardt.com.brGrupo: www.bludotnet....
Como vocês controlam o BD?Como vocês gerenciam alterações de estrutura de base?
Ruby on Rails Migrations     Migrations are a convenient way for you           to alter your database in a       structure...
EF – o que vêm primeiro?
Entity Framework Code First                 Contexto de dados  Data Annotations                   Fluent API
Migrations na prática
Demo: NuGet - EntityFramework         http://nuget.org/packages/entityframework
Demo: Primeira migração• Enable-Migrations   – Configuration• Adicionar classe da entidade País• Adicionar classe de conte...
Demo: Segunda migração• Adicionar classe da entidade Estado• Add-Migration Estados  – migration estados.cs     • Foreign-K...
Demo: alterando a migração• Downgrade -TargetMigration• Adicionar um índice à tabela de Estados  – .Index(t => t.Nome, uni...
Demo: outras opções• Parâmetros  –   -Script  –   -Verbose  –   -ConnectionStringName  –   -TargetMigration:$InitialDataba...
Customizando o Migrations• CSharpMigrationCodeGenerator• MigrationSqlGenerator
Alguns problemas...• Renomear tabela  – Gerou código para criar a tabela com o novo nome  – Gerou código para excluir a ta...
Dúvidas
Referências• Meu blog  – www.rafaelleonhardt.com.br     • Introdução ao Entity Framework Code First Migrations     • Data-...
Obrigado!              www.rafaelleonhardt.com.br            www.rafaelleonhardt.com.br                  @MumHaBR
Upcoming SlideShare
Loading in...5
×

BluDotNet - Entity Framework Code First Migrations

1,250

Published on

Palestra sobre Entity Framework Code First Migrations, realizada em Blumenau em 29/02/2012.

www.rafaelleonhardt.com.br

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,250
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • Fonte da imagem: http://www.red-gate.com/products/sql-development/sql-developer-bundle/learn-more/improving-developmentPerguntar: Vocês como desenvolvedor, como vocês garantem que um campo novo irá ser criado na base do cliente em uma atualização de sistema? Quais são as preocupações com este processo?E quando tem mais de um programador desenvolvendo?Quais as preocupações em relação ao banco de dados durante o desenvolvimento e manutenção de um aplicativo?Alteracao de campo, precisa ir pro clienteCriacao de chaves, indice, etcCriacao de tabela.Levar um sistema na versao 2 para a versao 5. Quais alteracoes precisam ser aplicadas na base.
  • BluDotNet - Entity Framework Code First Migrations

    1. 1. Entity FrameworkCode FirstMigrationsRafael LeonhardtTwitter: @MumHaBRBlog: www.rafaelleonhardt.com.brGrupo: www.bludotnet.com.br
    2. 2. Como vocês controlam o BD?Como vocês gerenciam alterações de estrutura de base?
    3. 3. Ruby on Rails Migrations Migrations are a convenient way for you to alter your database in a structured and organized manner. You could edit fragments of SQL by hand but you would then be responsible for telling other developers that they need to go and run them. You’d also have to keep track of which changes need to be run against the production machines next time you deploy. Fonte: http://guides.rubyonrails.org/migrations.html
    4. 4. EF – o que vêm primeiro?
    5. 5. Entity Framework Code First Contexto de dados Data Annotations Fluent API
    6. 6. Migrations na prática
    7. 7. Demo: NuGet - EntityFramework http://nuget.org/packages/entityframework
    8. 8. Demo: Primeira migração• Enable-Migrations – Configuration• Adicionar classe da entidade País• Adicionar classe de contexto• Add-Migration Paises – migration paises.cs• Update-Database
    9. 9. Demo: Segunda migração• Adicionar classe da entidade Estado• Add-Migration Estados – migration estados.cs • Foreign-Key• Update-Database
    10. 10. Demo: alterando a migração• Downgrade -TargetMigration• Adicionar um índice à tabela de Estados – .Index(t => t.Nome, unique: true);• Executar um comando SQL diretamente – Sql("UPDATE ESTADOS SET SIGLA = SC WHERE NOME = Santa Catarina");• Update-database
    11. 11. Demo: outras opções• Parâmetros – -Script – -Verbose – -ConnectionStringName – -TargetMigration:$InitialDatabase – -Force• Configuração: – AutomaticMigrationsEnabled = true;• Powershell: – migrate.exe
    12. 12. Customizando o Migrations• CSharpMigrationCodeGenerator• MigrationSqlGenerator
    13. 13. Alguns problemas...• Renomear tabela – Gerou código para criar a tabela com o novo nome – Gerou código para excluir a tabela velha mas com o nome novo • Resultado: Excluiu a tabela recém criada• Sql Azure Federation – Separa a estrutura de dados em vários databases – Antes de aplicar a migração precisa dizer qual federação usar. • Solução temporária: gerar um script sql e incluir na mão o federation• Gerar o sql de muitas migrações – Não gerou na ordem correta. – Não avaliei se foi corrigido na versão 4.3.0 do EF.
    14. 14. Dúvidas
    15. 15. Referências• Meu blog – www.rafaelleonhardt.com.br • Introdução ao Entity Framework Code First Migrations • Data-Tier Applications X Code First Migrations • Entity Framework: primeiro Database, Modelo ou Código• ADO Team Blog – http://blogs.msdn.com/b/adonet/ • EF 4.3 Released • EF 4.3 Code-Based Migrations Walkthrough • EF 4.3 Automatic Migrations Walkthrough
    16. 16. Obrigado! www.rafaelleonhardt.com.br www.rafaelleonhardt.com.br @MumHaBR
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×