我剛開始使用域驅動設計,並試圖將其應用於我當前的項目。域驅動開發:檢測更改(.NET)
我已經開始使用純粹的域模型,現在我的數據訪問層一直存在。我有一個完全自制的數據訪問層,因此在這裏不能使用任何已知的ORM工具。
我無法弄清楚如何處理更新。比方說,我有以下對象:
public class Document : Entity
{
public IPropertiesCollection Properties { get; set; }
public IContents Contents { get; set; }
}
public class PostalDocumentsPackage : Entity
{
public String Name { get; set; }
public DateTime DeliverDate { get; set; }
public ICollection<Document> Documents { get; set; }
}
我爲檢索對象(現在)相應的倉庫IDocumentsRepository和IPostalDocumentPackagesRepository。
我現在處理的問題是當我想添加一個新的文檔做PostalDocumentsPackage的Documents集合的情況。基本上我在這裏看到兩種可能的情況:
1)實現跟蹤原始集合中的更改並保存已更新\刪除的項目列表的集合。
2)在存儲庫中實現單獨的方法,用於向包中添加文檔。
我不知道這些方法是好的還是可能會導致未來的問題?或者有另一種選擇?
男孩哦,男孩,恐怕你有很多工作爲你剪掉。在模型中使用實體和存儲庫不會使其成爲DDD。跟蹤文檔,而不是跟蹤文檔標識符。此外,由於您使用的是自定義持久性,因此請嘗試更多地封裝狀態。首先考慮一個對象的行爲,國家會遵循自然,我保證。 – 2011-12-28 01:22:12
引用Jeff Atwood的話:「除非您計劃瞭解更多關於車輪的信息,否則不要重新發明車輪」。那麼,你在學習ORM嗎?如果不是,你爲什麼重新創建一個ORM? – autonomatt 2011-12-28 19:26:29