Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
30分間Windows Phone 7のデータベースをちょしてみる
Search
Takuya Shibata
PRO
February 25, 2012
Technology
0
50
30分間Windows Phone 7のデータベースをちょしてみる
第26回 .NET 勉強会 / ヒーロー島で発表した内容です。
Windows Phone 7のローカルデータベース機能の概要になります。
Takuya Shibata
PRO
February 25, 2012
Tweet
Share
More Decks by Takuya Shibata
See All by Takuya Shibata
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
360
AWSのProductのLifecycleについて
stknohg
PRO
0
460
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
540
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
1.5k
Snapshot & Backup
stknohg
PRO
0
4.1k
AWSエンジニアのためのActive Directory入門
stknohg
PRO
1
3.4k
EC2 Image Builder
stknohg
PRO
0
490
Windows on AWS の “基礎”
stknohg
PRO
0
860
Azure Dedicated Host と2019年10月1日からのライセンス改定のはなし
stknohg
PRO
0
550
Other Decks in Technology
See All in Technology
技術選定、下から見るか?横から見るか?
masakiokuda
0
170
Keynoteから見るAWSの頭の中
nrinetcom
PRO
1
160
Qiita Bash アドカレ LT #1
okaru
0
150
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
260
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
290
20251225_たのしい出張報告&IgniteRecap!
ponponmikankan
0
110
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
170
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
310
1万人を変え日本を変える!!多層構造型ふりかえりの大規模組織変革 / 20260108 Kazuki Mori
shift_evolve
PRO
5
610
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
1
120
AWSと生成AIで学ぶ!実行計画の読み解き方とSQLチューニングの実践
yakumo
2
110
AI との良い付き合い方を僕らは誰も知らない (WSS 2026 静岡版)
asei
1
200
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
870
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Believing is Seeing
oripsolob
0
19
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
130
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
2
270
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
HDC tutorial
michielstock
1
290
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
91
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
54
48k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Transcript
30分間 Windows Phone 7の データベースをちょしてみる 2012/02/25 第26回 .NET 勉強会 /
ヒーロー島 CLR/H 素敵なおひげ
自己紹介 • H/N:おひげ兄者シバタ(素敵なおひげ) • Twitter: @stknohg • Blog : http://d.hatena.ne.jp/stknohg/
• 札幌で働くSIerです。 2010年からCLR/Hのスタッフをやっています。 基本裏方。WP7は完全に趣味。 早くアプリ作らないとなぁ… • ちょす=北海道弁で『いじる』
CLR/H • CLR/H • Community for Learning and Research in
Hokkaido • http://clr-h.jp/ • 『clr-h』でググってください • 画像検索すると大体のイメージは掴める…かも • ちこたんがよしなに紹介してくれてるはず!
次回勉強会 • 第68回勉強会 データアクセステクノロジデイ • タイムテーブルは公式サイトで • 3/10 13:00-18:00 •
@ マイクロソフト株式会社北海道支店 セミナールーム • USTあります • http://www.ustream.tv/channel/clr-h1
アジェンダ 1. ローカルデータベース 2. LINQ to SQL 3. デモ 4.
データベースの作成・削除 5. CRUD・Commit/Rollback 6. まとめ
ローカルデータベース • Windows Phone OS 7.1よりアプリケーションの分離 ストレージ内にローカルデータベース(RDB)を格納す ることが可能になった • SQL
Server Compact Edition(CE) • バージョンは3.5? • データアクセスにはLINQ to SQLを使用
LINQ to SQL • SQLServer向けのORM • LINQクエリ式でデータアクセスを行う • IQueryable •
LINQクエリ式から式木を解析、SQLクエリを発行している • 生SQLは使用不可 • データコンテキスト(後述)のLogプロパティから発行されてい るSQLを確認することは出来る
DEMO
LINQ to SQLを利用するには • 参照設定の追加 • System.Data.Linq • usingの追加 •
System.Data.Linq • System.Data.Linq.Mapping • Microsoft.Phone.Data.Linq.Mapping
データコンテキスト(データベース) • System.Data.Linq.DataContext • 1インスタンスが1データベースと対になる • コンストラクタで接続文字列を指定 • Data Source:データソース
(例 isostore:/SampleDB.sdf) • Password: パスワード • Etc… • DataContectを継承したクラスが独自のデータベー スとなる
テーブル • System.Data.Linq.Table<T> • クラスにTable属性を付けるとテーブルとして扱われる • System.Data.Linq.Mapping.TableAttribute • Name: マッピングする物理テーブル名を指定
• プロパティにColumn属性を付けると列として扱われる • System.Data.Linq.Mapping.ColumnAttribute • IsPrimaryKey: 主キーか否かを指定 • IsDbGenerated: 値が自動生成されるか否かを指定 • DbType: 列の型情報を指定 • CanBeNull: NULL値を許可するか否かを指定 • Etc…
データベースの作成・削除 • データベースの作成 • DataContext.CreateDatabase()メソッド • 接続文字列で指定されたパスにデータベース(.sdfファイル) を作成 • データベースの削除
• DataContext.DeleteDatabase()メソッド • データベースを物理的に削除
CRUD処理 • CREATE(INSERT) • 新規登録するTableクラスのインスタンスを生成 • Table<T>.InsertOnSubmit()メソッド • READ(SELECT) •
LINQクエリでデータを選択 • UPDATE • Table<T>の内容を直接変更 • DELETE • 削除するTableクラスのインスタンスを選択 • Table<T>.DeleteOnSubmit()メソッド
Commit/Rollback • トランザクションの開始は自動 • 変更内容が後述のSubmitChangesまで保持される • TransactionScopeによる明示的なトランザクションは使えない • Commit •
DataContext.SubmitChanges()メソッド • Rollback • 明示的なメソッドなし • SubmitChanges()に失敗した場合はデータは更新されない • DataContextの参照を消す?
まとめ • Windows Phone OS 7.1からローカルデータベース (RDB)が扱える様になった • SQL Server
Compact Edition(CE) • LINQ to SQLを使ってデータアクセスを行う • DataContext=データベース • Table<T>=テーブル • 生SQLは扱えない
参考資料 • Windows Phone のローカル データベース(MSDN) • http://msdn.microsoft.com/ja- jp/library/hh202865(v=vs.92).aspx •
プログラミングWindows Phone(書籍)
ご静聴ありがとうございました。