sql ce & windows phone
DESCRIPTION
The easy way. SQL CE & Windows Phone. Paul Scivetti [email protected] @ TheIdeaGuy BuzzTheCloud.com. January 17, 2012. SQL CE + Win Phone!. Table Designer. Stored Procs. MS Dev Tools. T-SQL. Entity Framework. L2S + “Code First”. Seriously?. #%*$!!. SQL CE . Better - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/1.jpg)
SQL CE & Windows Phone
Paul [email protected]
@TheIdeaGuyBuzzTheCloud.com
The easy way
January 17, 2012
![Page 2: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/2.jpg)
SQL CE +Win Phone!
![Page 3: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/3.jpg)
MS Dev Tools
EntityFramework
TableDesigner
T-SQL
StoredProcs
![Page 4: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/4.jpg)
![Page 5: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/5.jpg)
L2S + “Code First”
![Page 6: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/6.jpg)
Seriously?
![Page 7: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/7.jpg)
#%*$!!
SQL CE
![Page 8: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/8.jpg)
Better Way?
![Page 9: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/9.jpg)
•Simple
•Useful
•Balanced
![Page 10: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/10.jpg)
• SQL CE Basics
• Tools
• Using L2S
• Performance
![Page 11: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/11.jpg)
Demo
![Page 12: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/12.jpg)
SQL CE Basics
• Where is the Database?
• Create / Modify Database
• Create Tables
![Page 13: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/13.jpg)
Where is the Database?using System.Data.Linq;
public partial class DBDataContext : DataContext { public DBDataContext() : base("Data Source=isostore:/PhoneDemoDB.sdf") { OnCreated(); } }
![Page 14: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/14.jpg)
Create DatabaseDBDataContext db = new DBDataContext();
if (!db.DatabaseExists()){
db.CreateDatabase();
var updater = db.CreateDatabaseSchemaUpdater();updater.DatabaseSchemaVersion = DB_CURRENT_VERSION;updater.Execute();
}
![Page 15: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/15.jpg)
Update Schemavar updater = db.CreateDatabaseSchemaUpdater();int dbVersion = updater.DatabaseSchemaVersion ;if (dbVersion < DB_CURRENT_VERSION){
if (dbVersion < 2) {updater.AddTable<Log>();
updater.AddColumn<Food>("Calories");}
updater.DatabaseSchemaVersion = DB_CURRENT_VERSION; updater.Execute();}
![Page 16: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/16.jpg)
Code
![Page 17: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/17.jpg)
SQL CE Basics
• Where is the Database?
• Create / Modify Database
• Create Tables
![Page 18: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/18.jpg)
![Page 19: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/19.jpg)
![Page 20: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/20.jpg)
![Page 21: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/21.jpg)
![Page 22: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/22.jpg)
![Page 23: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/23.jpg)
#%*$!!
SQL CE
![Page 24: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/24.jpg)
• SQL CE Basics
• Tools
• Using L2S
• Performance
![Page 25: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/25.jpg)
2. Run SQLMetal
3. Tweak code
4. Use L2S in App
1. Design Tables
![Page 26: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/26.jpg)
![Page 27: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/27.jpg)
SQLMetal
• Windows SDK
• Command line tool
• Generates mapping classes
• Almost WinPhone Compatible
![Page 28: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/28.jpg)
.\SqlMetal.exe /server:.\sqlexpress /database:phonedemo /code:c:\metal\phonedemo.cs /context:DBDataContext /pluralize /namespace:PhoneApp2
![Page 29: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/29.jpg)
Code
![Page 30: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/30.jpg)
• SQL CE Basics
• Tools
• Using L2S
• Performance
![Page 31: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/31.jpg)
Query Syntax:DBDataContext db = new DBDataContext();
var qry = from f in db.Foods orderby f.Description select f;
foreach (Food item in qry){ // process each food item}
![Page 32: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/32.jpg)
Fluent Syntax:DBDataContext db = new DBDataContext();
var qry = db.Events.OrderByDescending(o => o.MeetingDate) .ThenBy(o => o.Topic);
foreach (Event item in qry){ // process each event}
![Page 33: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/33.jpg)
CRUD: InsertDBDataContext db = new DBDataContext();
Food f = new Food();f.Description = “Mushroom Pizza”;
db.Foods.InsertOnSubmit(f);
db.SubmitChanges();
![Page 34: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/34.jpg)
Code
![Page 35: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/35.jpg)
• SQL CE Basics
• Tools
• Using L2S
• Performance
![Page 36: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/36.jpg)
using System.Threading.Tasks;private async void LoadFoodAsync(){
ObservableCollection<Food> res = new ObservableCollection<Food>();
await TaskEx.Run(() =>{
DBContext db = new DBContext();var qry = from s in db.Food select s;res = new ObservableCollection<Food>(qry);
});this.FoodItems = res;
}
Async Access
![Page 37: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/37.jpg)
Performance Tuningusing System.Data.Linq;
public partial class DBDataContext : DataContext {
// default buffer size: 384K public DBDataContext() : base("Data Source=isostore:
/PhoneDemoDB.sdf;max buffer size=1024") { OnCreated(); } }
![Page 38: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/38.jpg)
ResourcesWindows Phone Development
create.msdn.com LINQ to SQL
![Page 39: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/39.jpg)
SQL CE & Windows Phone
Paul [email protected]
@TheIdeaGuyBuzzTheCloud.com
The easy way
January 17, 2012
![Page 40: SQL CE & Windows Phone](https://reader035.vdocument.in/reader035/viewer/2022062310/568166bb550346895ddac462/html5/thumbnails/40.jpg)
SQL CE & Windows Phone
Paul [email protected]
@TheIdeaGuyBuzzTheCloud.com
The easy way
January 17, 2012