Entity Framework

Download Report

Transcript Entity Framework

無痛資料庫應用開發
Entity Framework 實戰技巧
多奇數位創意有限公司
技術總監 黃保翕 ( Will 保哥 )
部落格:http://blog.miniasp.com/
1
對 DBA 的 6 個疑問?
All services from your imperative.
 系統改版是否允許大幅改動資料庫結構?
 有多少人會參與應用程式的資料庫規劃?
 有多少人會參與資料庫效能調校?
 有多少人身兼 DBA 與 Developer?
 資料庫管理:基礎架構、日常維運
 資料庫開發:結構設計、效能調校
 有多少開發人員會撰寫預儲程序?
 你覺得 DBA 重要還是 Developer 重要?
2
DBA 的兩種類型
All services from your imperative.
 強勢的 DBA
 DBA 深受老闆寵愛
 以資料庫為中心思考,掌控全局
 主宰一切資料表、關連、索引、預儲程序、
觸發程序、效能調校、…
 要改Schema? Come on! No way!
 弱勢的 DBA
 在公司裡開發人員說話比較大聲
 只能確保資料庫正常運作、定時備份、…
 要改 Schema?沒問題,改壞你負責!
3
何謂 ORM (Object-relational mapping) ?
All services from your imperative.
 ORM 做什麼事?
 將結構化的關連資料對映成物件導向模型
 將物件資料對應成關連資料
 市面上有哪些 ORM 技術?






4
Typed DataSet
LINQ to SQL
Entity Framework
Devart LinqConnect
NHibernate
SubSonic
… and much more …
採用 ORM / Entity Framework 有什麼好處
All services from your imperative.
 對 DBA 來說
 更專注於自身的 DBA 生涯磨練
 對開發人員來說
 更專注於增強開發技巧
 不再侷限於現有資料庫架構
 以前: 對開發人員來說 DBA 越強勢越痛苦 (太沒結構)
 現在: 透過 ORM 技術開發不再受侷限
 可以再開發時期快樂的且安全的重構
 Entity Framework 想達到的目的:專業分工
 開發人員可以不懂 T-SQL / Stored Procedure
 DBA 可以不懂 OOP、.NET、Entity Framework
5
Entity Framework 的開發方式
All services from your imperative.
 Entity Framework 支援三種開發導向
 Database First Development
 DBA is the king!
 Model First Development
 DBA is helping.
 Code First Development
 DBA is nothing……
It’s a joke!
6
如何設計資料庫才能幫助開發人員?
All services from your imperative.
 一定要有 Primary Key
 資料型別要定義完整 (想清楚)
 欄位型態
 允許 NULL
 預設值
 表格之間要建立適當的關連(Foreign Keys)
 依據作業需求設計合適的檢視表(Views)
 為複雜的查詢或資料操作撰寫預儲程序
 有一致的命名規則 (可多用中文命名)
7
導入 Entity Framework 之後 DBA 能做的事
All services from your imperative.
 原本的資料庫維運工作不能少
 協助開發人員對資料庫進行分析與效能調校




8
索引與查詢效能
分析交易與鎖定
T-SQL 語法調校?
執行計畫與查詢計畫?
Entity Framework 如何進行效能調校
All services from your imperative.
 非常有限度的調整 T-SQL 語法
 context.News.Include(“Category”)
 context.ExecuteStoreCommand
 context.ExecuteStoreQuery<T>(String, Object[])
 善用預儲程序(Stored Procedure)優化查詢




9
Insert
Update
Delete
Select
聯絡資訊
All services from your imperative.
 The Will Will Web
記載著 Will 在網路世界的學習心得與技術分享
 http://blog.miniasp.com/
 ★ ★ ★ Will 保哥的噗浪 ★ ★ ★
 http://www.plurk.com/willh/invite
 Will 保哥的技術交流中心 (臉書粉絲專頁)
 http://www.facebook.com/will.fans
10
All services from your imperative.
感謝各位
11