Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
49
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
AWSのProductのLifecycleについて
stknohg
PRO
0
420
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
510
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
1.4k
Snapshot & Backup
stknohg
PRO
0
4.1k
AWSエンジニアのためのActive Directory入門
stknohg
PRO
1
3.3k
EC2 Image Builder
stknohg
PRO
0
480
Windows on AWS の “基礎”
stknohg
PRO
0
850
Azure Dedicated Host と2019年10月1日からのライセンス改定のはなし
stknohg
PRO
0
550
Windows on AWS 入門
stknohg
PRO
0
590
Other Decks in Technology
See All in Technology
Design System Documentation Tooling 2025
takanorip
1
930
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
570
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
2
660
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
MS Ignite 2025で発表されたFoundry IQをRecap
satodayo
3
240
Ryzen NPUにおけるAI Engineプログラミング
anjn
0
220
AI時代におけるアジャイル開発について
polyscape_inc
0
100
Digitization部 紹介資料
sansan33
PRO
1
6.1k
AI (LLM) を活用する上で必須級のMCPをAmazon Q Developerで学ぼう / 20251127 Ikuma Yamashita
shift_evolve
PRO
2
100
モバイルゲーム開発におけるエージェント技術活用への試行錯誤 ~開発効率化へのアプローチの紹介と未来に向けた展望~
qualiarts
0
310
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
0
120
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
43
26k
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
YesSQL, Process and Tooling at Scale
rocio
174
15k
It's Worth the Effort
3n
187
29k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Code Review Best Practice
trishagee
73
19k
Git: the NoSQL Database
bkeepers
PRO
432
66k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
Mobile First: as difficult as doing things right
swwweet
225
10k
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(書籍)
ご静聴ありがとうございました。