Entity
Framework
Migratios.Net Coders Webcast
Priscila Sato
http//dev.mayogax.me
.Net Coders Webcast Entity Framework @MayogaX
.Net Coders Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity Framework @MayogaX
Comandos Básicos
• Enable-Migrations
• Add-Migrations NomeDaMigration
• Update-database
• Get-Migrations
.Net Coders Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity 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 Webcast Entity Framework @MayogaX
Update-database
• Atualiza o banco de dados
• Syntax:
– Update-Database [-SorceMigration] [-
TagretMigration] [-Script] [-Force]
[-ProjectName] [-StartUpProjectName]
[CommonParameters]
.Net Coders Webcast Entity 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 Webcast Entity Framework @MayogaX
Dúvidas?
.Net Coders Webcast Entity Framework @MayogaX
Criticas, sugestões e reclamações?
Obrigada o/

Entity framework migrations

  • 1.
    Entity Framework Migratios.Net Coders Webcast PriscilaSato http//dev.mayogax.me .Net Coders Webcast Entity Framework @MayogaX
  • 2.
    .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
  • 3.
    .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
  • 4.
    .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
  • 5.
    .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#
  • 6.
    .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
  • 7.
    .Net Coders WebcastEntity Framework @MayogaX Comandos Básicos • Enable-Migrations • Add-Migrations NomeDaMigration • Update-database • Get-Migrations
  • 8.
    .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>]
  • 9.
    .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
  • 10.
    .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]
  • 11.
    .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
  • 12.
    .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
  • 13.
    .Net Coders WebcastEntity Framework @MayogaX Update-database • Atualiza o banco de dados • Syntax: – Update-Database [-SorceMigration] [- TagretMigration] [-Script] [-Force] [-ProjectName] [-StartUpProjectName] [CommonParameters]
  • 14.
    .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
  • 15.
    Demo .Net Coders WebcastEntity Framework @MayogaX
  • 16.
    Dúvidas? .Net Coders WebcastEntity Framework @MayogaX Criticas, sugestões e reclamações? Obrigada o/