實體框架為 ADO.NET 帶來革命性技術,開發者可針對邏輯模型 (EDM) 而非實體資料庫結構編程,大幅提升彈性。核心在於實體資料模型 (EDM),定義實體類型、關聯與容器,透過 CSDL/MSL/SSDL 三層 XML 映射至關聯式資料庫。Visual Studio 2008 提供視覺化 EDM 設計工具,讓模型建立與修改更直觀高效。


三層 XML 整合在單一 .edmx 檔案中,設計工具資訊僅設計時使用,CSDL/MSL/SSDL 編譯時產生類別。


預存程序預設僅在 SSDL 定義,需手動映射至 CSDL 方法:
<!-- CSDL: FunctionImport -->
<FunctionImport Name="GetTenMostExpensiveProducts"
EntitySet="Products"
ReturnType="Collection(Self.Product)" />
<!-- MSL: FunctionImportMapping -->
<FunctionImportMapping FunctionImportName="GetTenMostExpensiveProducts"
FunctionName="NWModel.Store.Ten_Most_Expensive_Products" />
若有參數,在 FunctionImport 加入 <Parameter Name="CategoryId" Type="Int32" Mode="in" />。



以 Product 為基底建立 DiscontinuedProduct:
Discontinued 欄位映射Discontinued = 0Discontinued = 1Condition 寫入 MSL EntityTypeMapping,查詢時自動篩選,儲存時自動設定欄位值。衍生實體可額外新增屬性。
視覺化 EDM 設計工具配合 XML 編輯,支援繼承、預存程序映射、業務建模等完整功能。完成模型後透過 Object Services (含 LINQ to Entities) 操作極為簡單,且修改映射即可隔離資料庫結構變更,實現真正的關注點分離。