聚合將實體與值對象組合,共同表達一個完整業務概念。如「車」包含四個「輪子」,輪子離開車無意義,「車」為聚合根。

EF 將所有實體平鋪在 ObjectContext 中。解決方案:定義 IAggregateRoot 標記介面,配合 partial class 讓根實體實現該介面:
public interface IAggregateRoot { }
[AggregateRoot("Orders")]
partial class Order : IAggregateRoot {
public decimal TotalDiscount => Lines.Sum(l => l.Discount);
public decimal TotalAmount => Lines.Sum(l => l.LineAmount);
}
介面用作泛型約束(如倉儲 where T : IAggregateRoot),技術上標識聚合根身份。
interface IEntity { Guid Id { get; set; } }
interface IAggregateRoot : IEntity { }
明確「聚合根是實體」的語義。
領域模型需依業務概念劃分聚合,每聚合一根,生命週期操作作用於根。EF 雖無原生支援,但可用介面與 partial class 補足。