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
36
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 Data Transfer Terminal
stknohg
PRO
0
380
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
1.3k
Snapshot & Backup
stknohg
PRO
0
3.9k
AWSエンジニアのためのActive Directory入門
stknohg
PRO
1
3.1k
EC2 Image Builder
stknohg
PRO
0
440
Windows on AWS の “基礎”
stknohg
PRO
0
770
Azure Dedicated Host と2019年10月1日からのライセンス改定のはなし
stknohg
PRO
0
500
Windows on AWS 入門
stknohg
PRO
0
550
普通の人が普通にブログを継続するためにやっていること
stknohg
PRO
0
770
Other Decks in Technology
See All in Technology
5min GuardDuty Extended Threat Detection EKS
takakuni
0
150
Uniadex__公開版_20250617-AIxIoTビジネス共創ラボ_ツナガルチカラ_.pdf
iotcomjpadmin
0
160
AIのAIによるAIのための出力評価と改善
chocoyama
2
560
Wasm元年
askua
0
140
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
9
1.2k
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
550
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
280
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
5.6k
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
180
250627 関西Ruby会議08 前夜祭 RejectKaigi「DJ on Ruby Ver.0.1」
msykd
PRO
2
300
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
240
フィンテック養成勉強会#54
finengine
0
180
Featured
See All Featured
Building an army of robots
kneath
306
45k
VelocityConf: Rendering Performance Case Studies
addyosmani
330
24k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Automating Front-end Workflow
addyosmani
1370
200k
Being A Developer After 40
akosma
90
590k
GraphQLとの向き合い方2022年版
quramy
48
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Designing Experiences People Love
moore
142
24k
Code Reviewing Like a Champion
maltzj
524
40k
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(書籍)
ご静聴ありがとうございました。