
Download - Scripts Entity Framework
Transcript
- 1. SQL InternalOpsConference
- 2. SQL Internal OpsConferencePriscila Mayumi SatoMicrosoft Community Contributor (MCC)http://dev.mayogax.me/@MayogaXScrips gerados peloEntity Framework
- 3. SQL Internal OpsConferenceO Entity Framework um Object-relational mapping, ou seja, elemapeia um banco de dados relacional para objetos e cuida do meiode caminho entre uma aplicao (C#) e um banco de dados (SQL)http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sportEntity Framework,chamado pelo time daAdo.Net como MagicUnicorn
- 4. SQL Internal OpsConferenceNo confio em ORM gerando script pro meu banco-by DBA ciumento em uma mesa de barScripts de ORMs so melhores que scrips de humanos-by programador C# em uma thread do .NetBrhttp://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 5. SQL Internal OpsConferenceMas ORMs s geram cdigo de leitura, atualizao e excluso delinhas, n? Ento qual o problema?SELECT[Extent1].[Id] AS [Id],[Extent1].[Title] AS [Title],[Extent1].[Description] AS [Description]FROM [dbo].[Mangas] AS [Extent1]
- 6. SQL Internal OpsConferenceE como eu pego essas querys, tia?Ir debugando seu cdigo C#Usando a classe:System.Data.Entity.Infrastructure.DbQuery (porexemplo)Exemplo de resultado:http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sportSELECT[Extent1].[Id] AS [Id],[Extent1].[Title] AS [Title],[Extent1].[Description] AS [Description],[Extent1].[Mangaka] AS [Mangaka]FROM [dbo].[Mangas] AS [Extent1]WHERE 1 = [Extent1].[Id]
- 7. SQL Internal OpsConferenceE se eu te disser que o Entity Framework (e outros ORMs) geramscripts de criao de base de dados?E se eu te disser que tambm criam scripts para alterao de basede dados?
- 8. SQL Internal OpsConferenceO Entity Framework possui dois caminhos para gerar banco dedados:Model FirstCode FirstTambm possui 3 estratgias para gerao de banco de dadosDropCreateDatabaseIfModelChangesCreateDatabaseIfNotExistsDropCreateDatabaseAlwayshttp://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 9. SQL Internal OpsConferenceCalma, mas o mundo no est perdido!Quando o banco gerado pelo Model First mostrado o cdigo SQLantes de gera-lo.Para gerar o banco definitivamente voc precisa rodar o cdigogerado(Ainda d tempo de muda-lo).D para usar Code First com uma base j existente!http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 10. SQL Internal OpsConference-- ---------------------------------------------------- Creating all tables-- ---------------------------------------------------- Creating table MangaCREATE TABLE [dbo].[Manga] ([Id] int IDENTITY(1,1) NOT NULL);GO-- ---------------------------------------------------- Creating all PRIMARY KEY constraints-- ---------------------------------------------------- Creating primary key on [Id] in table MangaALTER TABLE [dbo].[Manga]ADD CONSTRAINT [PK_Manga]PRIMARY KEY CLUSTERED ([Id] ASC);GOhttp://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 11. SQL Internal OpsConferenceE a tal alterao do banco de dados?Entity Framework Migrations um meio de manter um controle deverses sobre a estrutura (e no os dados) da sua base.Todo banco de dados gerado pelo Code First possui uma tabela dosistema chamada _MigrationHistory onde guardado as mudanasda estrutura e a verso do Entity Framework.http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 12. SQL Internal OpsConferenceO cdigo das alteraes fica em C# numa pasta chamada Migrationsno projeto.Ao rodar uma migration (atualizao ou volta de verso) o banco atualizado automaticamente.Voc pode pegar o script da alterao e executa-lo na mo, usando oparmetro script, que mostra numa janela nova o script daalterao.http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 13. SQL Internal OpsConferenceExemplo de uso de Migration:Adicione um campo na sua POCO.Na console do nuget rode o comando:Add-Migration NomeMigrationDepois rode o comando:Update-Database scriptVai abrir em outra janela o script:ALTER TABLE [dbo].[Mangas] ADD [Mangaka] [nvarchar](max)http://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 14. SQL Internal OpsConferencehttp://www.dailymotion.com/video/xh47ia_sara-varone-surf_sport
- 15. SQL Internal OpsConferencehttp://www.dailymotion.com/video/xh47ia_sara-varone-surf_sportObrigadaDvidas, sugestes, criticas ou convites parajogar RPG?