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
12
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
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
700
Snapshot & Backup
stknohg
PRO
0
2.7k
AWSエンジニアのためのActive Directory入門
stknohg
PRO
1
2.1k
EC2 Image Builder
stknohg
PRO
0
250
Windows on AWS の “基礎”
stknohg
PRO
0
410
Azure Dedicated Host と2019年10月1日からのライセンス改定のはなし
stknohg
PRO
0
270
Windows on AWS 入門
stknohg
PRO
0
290
普通の人が普通にブログを継続するためにやっていること
stknohg
PRO
0
520
PowerShell CoreからPowerShell 7に至る道 - Ver.1.1
stknohg
PRO
0
2.9k
Other Decks in Technology
See All in Technology
Next.js に疲れた私は Vue3 に癒やされた
akagire
0
140
競技としてのKaggle、役に立つKaggle
yu4u
6
2.4k
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
680
生産性向上チームの紹介
cybozuinsideout
PRO
1
930
成長をサポートするピープルマネジメントのやり方
sioncojp
9
1.2k
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
1.1k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
GrafanaMeetup_AmazonManagedGrafanaのアクセス制御機能とマルチテナント環境下でのアクセス制御について
daitak
0
410
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
5
18k
社内アプリで Cloudflare D1を プロダクト運用してみた体験談(Tokyo)
haochenx
0
120
Google Cloud Next '24 Recap(Cloud Run/k8s)
mokocm
0
340
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
Featured
See All Featured
Designing for Performance
lara
601
67k
Navigating Team Friction
lara
179
13k
KATA
mclloyd
16
12k
Product Roadmaps are Hard
iamctodd
45
9.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
66
14k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
43k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
34
6k
How STYLIGHT went responsive
nonsquared
92
4.8k
How GitHub (no longer) Works
holman
305
140k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
660
120k
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(書籍)
ご静聴ありがとうございました。