我與實體框架代碼優先純粹的實現聚合根的掙扎。假設我們有一個Order和OrderItem的標準問題,後者是前者的孩子。我們需要有OrderItem的項目只讀集合中的Order類,所以我們可以(通過設計)控制添加,刪除或的OrderItems的更新在它的聚合根(即Order類)。聚合根和Entity Framework
我們如何實現這個OrderItem列表?這個列表需要是隻讀的,以便其他開發商不要試圖用手將OrderItem的(一個或多個)清單內,避免了應該使用的方法。
我們如何映射EF的Code First該集合?私有財產不可映射。
可以映射私有成員:http://stackoverflow.com/a/13810766/861716 –
這是真的,但幾乎沒有一個DDD的解決方案。您可以在域類和基礎持久性機制之間添加耦合。 –
事實上,屬於實體框架環境的類模型首先是[數據層](http://stackoverflow.com/a/18113611/861716)。爲了便於數據訪問(虛擬成員,用於識別和外鍵的Id屬性,雙向關係,類似於數據庫表的類),必須優化所有內容。我的觀點是:你不能用EF類模型來執行DDD,ORM會有這麼一種或另一種方式的大腳印。 –