使用 Entity Framework 快速打造關聯式資料庫存取應用程式

3 Layer

什麼是ORM

為什麼要用ORM?

ORM Solution

支援多種關聯性資料庫

SQL Server

SQL Compact Edtion

MySQL

Maria

SQLite

DB2

PostgreSQL

Oracle

Entity Framework(Open Source)

Open Source

a

Dapper

$/Internal Training/ADO.NET/DapperReadAS400

NHibernate

LINQ to SQL

實作

Nuget

EntityFramework

System.Linq.Dynamic

Telerik_UI_for_ASP.NET_AJAX

THS.ComponentModel

分層實作方式

從使用者需求的角度切入

高層模組依賴抽像

實作抽像

Shift+Alt+F10

Linq的延遲執行與立即執行

使用SQL Profiler觀察Server Control的行為是否符合預期

多人同時開發同一個作業流程,類別名稱重複,使用partial class

partial class必須要在同一個命名空間

SQL 裡的Default Value

若資料欄位為必填,但又有設定Default Value,必須要讓

Metadata

擴充工具所產生出來的類別

在partial 類別加上,[MetadataType(typeof(PersonMetaData))]

AutoMapper

$/Internal Training/AutoMapper/AutoMapperUnitTestProject

ViewModel

針對UI設計

檢查欄位

Model Mapping

IEnumerable vs IQueryable

POCO 與一般類別差異之處

例外

不要太早寫catch

邏輯問題

流程問題

不是所有的例外都catch的到

應用程式等級的例外

低層模組,不要隨便 throw ex

物件導向的世界,大的很小,小的很大

捕捉正確的例外

Elmah