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
66
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
30分間Windows Phone 7のデータベースをちょしてみる
第26回 .NET 勉強会 / ヒーロー島で発表した内容です。
Windows Phone 7のローカルデータベース機能の概要になります。
Takuya Shibata
PRO
February 25, 2012
More Decks by Takuya Shibata
See All by Takuya Shibata
意外とあった SQL Server 関連アップデート + Database Savings Plans
stknohg
PRO
0
610
AWSのProductのLifecycleについて
stknohg
PRO
0
680
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
740
CloudFrontの継続的デプロイを試してみたはなし
stknohg
PRO
0
1.6k
Snapshot & Backup
stknohg
PRO
0
4.3k
AWSエンジニアのためのActive Directory入門
stknohg
PRO
1
3.7k
EC2 Image Builder
stknohg
PRO
0
580
Windows on AWS の “基礎”
stknohg
PRO
0
980
Azure Dedicated Host と2019年10月1日からのライセンス改定のはなし
stknohg
PRO
0
630
Other Decks in Technology
See All in Technology
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
270
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
370
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
370
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
260
穢れた技術選定について
watany
19
6.1k
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
370
AI_Dev_Day_製造業領域でのAI活用から見た活用の罠と成功に導く実践知.pdf
kintotechdev
0
160
_NIKKEI_Tech_Talk__勉強会は熱量では続かない___17回続いた輪読会の設計術.pdf
_awache
1
100
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
210
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
740
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
160
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
13
4.4k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
225
10k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Abbi's Birthday
coloredviolet
3
8.8k
Side Projects
sachag
455
43k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
230
30 Presentation Tips
portentint
PRO
1
350
Statistics for Hackers
jakevdp
799
230k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Rails Girls Zürich Keynote
gr2m
96
14k
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(書籍)
ご静聴ありがとうございました。