+ All Categories
Home > Documents > Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData.

Sample Fill LINQ (Language Integrated Query) Objects XML SQL User Data OData.

Date post: 21-Apr-2015
Category:
Upload: internet
View: 118 times
Download: 2 times
Share this document with a friend
21
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.


Recommended