首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

EntityFramework 領域驅動設計實踐(三):簡易銷售系統領域建模與 EF 支援度分析

     編輯:關於.NET

案例:簡易銷售系統

實體:客戶、單據(銷售訂單/退貨單)、產品、產品類型。單據含多行。客戶可擁多張信用卡。EF Entity Data Model Designer 產出模型:

領域模型圖

實體支援

  • 每實體有 Id 主鍵,支援自動生成策略(Identity/GUID)。
  • 不支援實體行為:僅為 Entity Data Model。需用 partial class 注入行為(如訂單行 LineAmount 計算屬性)。
  • 關聯支援:關聯、繼承。繼承讓 SalesOrder/ReturnOrder 繼承 Order,LINQ 查詢 where o is SalesOrder 語義清晰,優於傳統 OrderType=0 魔術數字。

值對象支援

支援 ComplexType(如 Name、Address),可巢狀定義多層複雜型別,優於 LINQ to SQL。

ComplexType 設計

不足與期望

  • 不支援枚舉型別(語義表達弱)。
  • ComplexType 為參考型別,值型別更輕量。
  • 不支援行為定義,期望 Entity Model Designer 取代 Entity Data Model Designer。
  • 支援從存儲過程生成方法,屬反模式,建議移除。

結論

EF 基本支援 DDD 核心概念(實體、值對象、繼承、關聯),配合 partial class 註入行為,可勝任領域驅動實踐。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved