Upload
priscila-mayumi-sato
View
456
Download
0
Embed Size (px)
DESCRIPTION
Slides do webcast sobre Entity Framework Migrations feito em março de 2013
Citation preview
Entity FrameworkMigratios
.Net Coders WebcastPriscila Sato
http//dev.mayogax.me
.Net Coders WebcastEntity Framework
@MayogaX
.Net Coders WebcastEntity Framework
@MayogaX
Cenário
• A estrutura de um banco de dados pode ser alterada
• Gerenciar versões de schemas de base de dados não é simples
• Em código de aplicação podemos usar versionadores
.Net Coders WebcastEntity Framework
@MayogaX
Cenário
• Caminho comuns para lidar com isso são procedures e scripts
• Já existem ferramentas para versionamento de banco de dados
• Muitos ORMs já possuem módulos para gerenciar essas versões
.Net Coders WebcastEntity Framework
@MayogaX
O Entity Framework
• ORM da Microsoft
• Versão 6 sendo trabalhada desde agosto de 2012 e em alpha 3
E o símbolo é um unicórnio. O Magic Unicorn
• Roda por cima da Ado.Net
• Nasceu no service pack do .Net framework 3.5
• É Open Source
• Trabalha tanto gerando base de dados quanto com base já existente
.Net Coders WebcastEntity Framework
@MayogaX
Entity Framework Migrations
• Meio de versionar as versões do schema– Ainda não versiona procedures e functions
• Trabalha vigiando suas classes de entidades
• Possibilita fazer o update e o downgrade
• Os códigos das migrations são com C#
.Net Coders WebcastEntity Framework
@MayogaX
Código das Migrations
• No projeto em que você usa migrations será criada uma pasta chamda Migrations com um arquivo de classe para cada migration
• O Configuration Migration é a classe onterna que cuida das configurações de Seed (configurações de inicialização de base de dados) e sobre a AutomaticMigration
.Net Coders WebcastEntity Framework
@MayogaX
Comandos Básicos
• Enable-Migrations
• Add-Migrations NomeDaMigration
• Update-database
• Get-Migrations
.Net Coders WebcastEntity Framework
@MayogaX
Enable-Migrations
• Habilita migrations no seu projeto e cria a pasta Migrations com a classe de configuração
• Syntax:– Enable-Migrations [-EnableAutomaticMigrations] [[-ProjectName] <NomeDoProjeto>] [-Force] [<ParametrosComuns>]
.Net Coders WebcastEntity Framework
@MayogaX
Enable-Migrations
• Parametros possiveis:– EnableAutomaticMigrations • Habilita o Automatic Migrations (dãa)
– ProjectName <nome>• Especifica o projeto da qual as entidades
serão “vigiadas”
– Force• Força a configuração substituindo a anterior
.Net Coders WebcastEntity Framework
@MayogaX
Add-Migration
• Cria uma migration nova com o nome dados. O inicio do nome da classe de scaffold será o timespan atual
• Syntax– Add-Migration [-Name]
<NomeDaMigration> [-Parametros]
.Net Coders WebcastEntity Framework
@MayogaX
Add-Migration
• Parametros:– Name
• Indica o nome da migration
– Force• Indica que vai reescrever os me´todos de scaffolding
– ProjectName• Diz o nome do projeto na qual aquela migration vai
valer
– StartuProject• Diz o nome do projeto que contem a
connectionstring
.Net Coders WebcastEntity Framework
@MayogaX
Add-Migration
• Parametros:– ConfigurationTypeName
• Diz qual a configuração vai ser usada
– ConnectionStringName• Útil caso você possua mais de uma connection string no
projeto
– ConnectionStringProviderName• Diz o nome do provider utilizado, caso seja variavel na
sua connectionstring
– IgnoreChanges• Indicada para se trabalhar com um banco de dados já
existente pois a migration criada vai possui métodos vazios
.Net Coders WebcastEntity Framework
@MayogaX
Update-database
• Atualiza o banco de dados
• Syntax:– Update-Database [-SorceMigration] [-TagretMigration] [-Script] [-Force] [-ProjectName] [-StartUpProjectName] [CommonParameters]
.Net Coders WebcastEntity Framework
@MayogaX
Update-database
• Parametros– SourceMigration
• Valido casado com o –Script para update apartir de determinado ponto
– TagertMigration• Caso você queira dar um downgrade, por
exemplo. Você passa depois o nome da migration
– Script• Abre uma nova aba com o script gerado
– Verbose• Mostra na Console o script gerado
Demo
.Net Coders WebcastEntity Framework
@MayogaX
Dúvidas?
.Net Coders WebcastEntity Framework
@MayogaX
Criticas, sugestões e reclamações?Obrigada \o/