16
Entity Framework Migratios .Net Coders Webcast Priscila Sato http//dev.mayogax.me .Net Coders Webcast Entity Framework @MayogaX

Entity framework migrations

Embed Size (px)

DESCRIPTION

Slides do webcast sobre Entity Framework Migrations feito em março de 2013

Citation preview

Page 1: Entity framework migrations

Entity FrameworkMigratios

.Net Coders WebcastPriscila Sato

http//dev.mayogax.me

.Net Coders WebcastEntity Framework

@MayogaX

Page 2: Entity framework migrations

.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

Page 3: Entity framework migrations

.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

Page 4: Entity framework migrations

.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

Page 5: Entity framework migrations

.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#

Page 6: Entity framework migrations

.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

Page 7: Entity framework migrations

.Net Coders WebcastEntity Framework

@MayogaX

Comandos Básicos

• Enable-Migrations

• Add-Migrations NomeDaMigration

• Update-database

• Get-Migrations

Page 8: Entity framework 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>]

Page 9: Entity framework migrations

.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

Page 10: Entity framework migrations

.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]

Page 11: Entity framework migrations

.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

Page 12: Entity framework migrations

.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

Page 13: Entity framework migrations

.Net Coders WebcastEntity Framework

@MayogaX

Update-database

• Atualiza o banco de dados

• Syntax:– Update-Database [-SorceMigration] [-TagretMigration] [-Script] [-Force] [-ProjectName] [-StartUpProjectName] [CommonParameters]

Page 14: Entity framework migrations

.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

Page 15: Entity framework migrations

Demo

.Net Coders WebcastEntity Framework

@MayogaX

Page 16: Entity framework migrations

Dúvidas?

.Net Coders WebcastEntity Framework

@MayogaX

Criticas, sugestões e reclamações?Obrigada \o/