sample fill linq (language integrated query) objects xml sql user data odata

21

Upload: internet

Post on 21-Apr-2015

131 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData
Page 2: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Acesso a base de dados (local DB) no WP 7WPH401

Renato HaddadMVP, MCT, MCTS, [email protected] @rehaddadwww.renatohaddad.comhttp://weblogs.asp.net/renatohaddad

Page 3: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Agenda

Visão GeralAcesso a dados no Windows PhoneDesenvolvimento Code-first

ImplementaçãoConsultasInserts, updates, deletesDatabase schema upgrades

Performance e melhores práticas

Page 4: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Opções de Armazenamento

Page 5: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

LINQ para tudo

LINQ (Language Integrated Query)

Objects XML SQLUser Data

OData

Page 6: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Local Data Storage: Visão GeralApps gravam dados no Isolated Storage

Configurações e propriedades no dicionário da appDados sem estrutura => arquivos no Isolated StorageDados estruturados => banco de dados

Configurações da App

AppCria/gerencia arquivos

e configurações

Aplicação

App Data Folder

Package Manager

App Root Folder

WP7 Isolated Storage APIs

Install

DB

Database

DatabaseCria folder raíz da AppDB

Page 7: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Banco de DadosGerar via classe ou via ferramenta SQL

CMD DOSCria .cs

Contexto e Classes

.SDF

SqlMetal

C:\TempDB

Page 8: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

// Define o data contextpublic partial class TechEdDataContext : DataContext {

public Table<Palestra> Palestras;public Table<Palestrante> Palestrantes;public TechEdDataContext(string connection) : base(connection) { }

}

// Define as tabelas do banco[Table]public class Palestra {

[Column(IsPrimaryKey=true]public string ID { get; set; }[Column]public string NomePalestra { get; set; }……

}

// Cria o banco de dados no context usando a string de conexãoDataContext db = new TechEdDataContext("isostore:/techedDB.sdf");if (!db.DatabaseExists()) db.CreateDatabase();

Desenvolvimento Code First

Page 9: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

SqlMetal para gerar a classe

sqlmetal c:\temp\TechEd2011.sdf /code:"c:\temp\TechEd2011DataClasses.cs" /language:csharp /namespace:TechEd2011 /context:TechEd2011DataContext /pluralize

Page 10: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Objects, Objects, Objects…

Design time

Cria objeto: palestra, ouvintes, sorteios, etc.Decora objetos com atributos para persistência

Run time

Cria referência DataContext para o banco de dados

Traduz o modelo de objeto para arquivo DB

Submete CRUD para persitir no banco

Database upgrade

Cria novos objetos com novas necessidades

Usa APIs para atualizar a estrutura do banco

Table 1 Table 2

Table 3 Table 4

Wines

PK WineID

Name Description RetailPriceFK2 VarietalIDFK1 VineyardID

Vineyards

PK VineyardID

Name Latitude Longitude Country

Varietals

PK VarietalID

Name

Winemaker

PK WinemakerID

FirstName LastName

Page 11: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Consultas// Cria o banco no data contextDataContext db = new WineDataContext("isostore:/TechEdDB.sdf");

// Mostra todas as palestras que contém o texto WPH no campo NomePalestra, ordenados por Datavar q = from p in db.Palestras

where p.NomePalestra.Contains(“WPH” orderby p.Data select p;

Page 12: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

DB

DataContext

Inserts/Updates/Deletes (CRUD)Tudo no DataContext

Realiza CRUD no DataContextPersiste o contexto ao chamar SubmitChanges()

SubmitChangesLINQ to SQL determina as operações de CRUD e submete ao DB

Objeto1 Dado1

Objeto2 Dado2

Objeto3 Dado3

Código da app

Campo1 Dado1

Campo2 Dado2

Campo3 Dado3

Page 13: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Inserts/Updates/Deletes

Palestra p = new Palestra{

ID = “WPH401",Nome = “Windows Phone Local Database",Descricao = “Venha conhecer como usar DB no WP"

};

db.Palestras.InsertOnSubmit(p);

db.SubmitChanges();

Palestra atual = (from p in db.Palestras where p.ID == “WPH401" select p).First();

p.Descricao = “Uso de DB no WP7";

db.SubmitChanges();

Insert Update

Page 14: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Inserts/Updates/DeletesDelete

var excluir = from p in db.Palestraswhere p.Codigo.StartsWith(“WP”)select p;

db.Palestras.DeleteAllOnSubmit(excluir); db.SubmitChanges();

Atenção as Foreign keys relacionadas em outras entidades

Page 15: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Database Schema UpgradesDatabaseSchemaUpdater permite atualizar o DB existenteSuporta adicionar

TabelasColunasIndicesAssociação/foreign keys

DatabaseSchemaVersion disponível para rastrear atualizaçõesSchemas são transacioanais

Page 16: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Database Schema UpgradesTechEdDataContext dc = new TechEdDataContext(App.connDB);

DatabaseSchemaUpdater dsu=dc.CreateDatabaseSchemaUpdater();

if (dsu.DatabaseSchemaVersion == 1){

dsu.AddColumn<Palestra>(“Qtde");dsu.DatabaseSchemaVersion = 2;

dsu.Execute();}         

Page 17: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Conteúdo RelacionadoVídeo aulas no MSDN Brasilhttp://msdn.microsoft.com/pt-br/windowsphone

Página do produtohttp://www.microsoft.com/windowsmobile/pt-br/default.mspx

Documentação http://msdn.microsoft.com/library/ff402535(VS.92).aspx

Renato Haddad [email protected] Treinamentos para times de desenvolvimento

Page 18: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Palestras RelacionadasResource 1

Resource 2

Resource 3

Resource 4

Page 19: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Recursos

Recursos para Desenvolvedores

http://msdn.microsoft.com/pt-br

Getthefreemobileappforyourphone

http://gettag.mobi

Page 20: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

Não esqueça de preencher sua

avaliação onlinewww.teched.com.br/

avaliacao

Getthefreemobileappforyourphone

http://gettag.mobi

Page 21: Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData

© 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.