ddd-repositories

    0熱度

    2回答

    我已經閱讀了幾周的StackOverflow,但仍無法決定我的DDD Aggregate Root選項是否正確。長話短說 - 這裏是實體。它是關於足球/足球領域: 聯賽,球隊和比賽 每個隊可以通過玩較量參加一個或多個聯賽(即英超,歐洲冠軍聯賽) 。每隊有HomeMatches和AwayMatches在某個聯盟。每個比賽有一個聯賽,主隊和AwayTeam。 每個聯賽有很多比賽。 我想我需要有兩個倉庫

    1熱度

    1回答

    我在批發系統領域工作。當某些產品交付時,會觸發域名NewProductsDeliveredEvent。事件包含一組包含產品代碼和數量的值對象ProductDelivery。像下面這樣: class NewProductsDeliveredEvent { Set<ProductDelivery> productDeliveries; } class ProductDelivery {

    1熱度

    1回答

    我有一些大的實體。實體具有房產「身份證」,「身份」等。 我有這個實體的知識庫。 我想改變一個實體的狀態。 我應該得到整個實體,更改屬性狀態並使用存儲庫中的保存方法,或者我應該使用Repository中的方法ChangeStatus(id,newStatus)?

    3熱度

    4回答

    下面是一個很好的設計,可以在洋蔥結構和域驅動設計中使用嗎? 說你有一個像這樣 class Order { INotificationService _notificationService; ICartRepository _cartRepository; void Checkout(Cart cart, bool notifyCustomer) {

    2熱度

    3回答

    存儲庫模式表明您只能拉取聚合根。但是,如果您不知道它是父級(root),您將如何僅使用唯一身份(Child.ID)檢索單個孩子? class Parent { public int ID { get; set; } IEnumerable<Child> Children { get; private set; } } class Child { public

    2熱度

    2回答

    我需要關於DDD(域驅動設計)和存儲庫模式和封裝的實現的建議。 我的理解是,Repository模式使我能夠將所有數據庫訪問邏輯放在一個位置,並從應用程序的其他部分抽象出邏輯。 另一方面有ORM(Nhibernate,EntityFramework ...)支持Linq和IQueryable。 我的縫隙是: 1.如果我使用存儲庫,那麼我不應該使用IQueryable作爲我的返回類型胸圍而不是使用I

    1熱度

    2回答

    想象一下,我們在域中有四個實體:生產的Product,定義產品類型的Technology,製造過程中使用的Material和Material所屬的Category。有很多Categories可以嵌套在類別中,層次深度沒有限制。 A Product可以由Materials的各種組合製成。 假設我們通過添加或刪除某些父母Categories來定義Technology。然後我們根據Technology創

    2熱度

    2回答

    我最近對我的觀點提出質疑,即單例只適用於日誌記錄和配置。依賴注入我現在沒有看到你無法使用服務或存儲庫作爲單身人士的原因。 由於DI通過接口注入單例實例,因此沒有耦合。唯一合理的論點是您的服務可能具有共享狀態,但如果您仔細考慮,服務應該是獨立的單位,沒有任何共享狀態。是的,他們確實注入了存儲庫,但是隻有一種方法可以創建存儲庫實例並將其傳遞給服務。由於存儲庫不應該有一個共享狀態,我不明白爲什麼它也不能

    5熱度

    3回答

    我在理解存儲庫域對象關係時遇到了一些小問題。以下是我所瞭解的關於域名設計的一些信息(它們也可能是錯誤的或不準確的)。考慮到這些,我找不到從存儲庫獲取域對象的方法。 在DDD中,域應該只知道和包含業務所需要的內容,其他所有內容都必須從域中清除。沒關係。並且從任何業務中抽象數據訪問也是一個很好的做法。應用程序不需要知道我們存儲數據的位置或我們如何存儲數據。我們只要求存儲庫給我們一個域對象,它給了我們我

    6熱度

    2回答

    背景:我有一個Person域對象。它是一個聚合根。我已經在下面列出了一部分課程。 我正在公開執行對象行爲的方法。例如,要添加一個BankAccount,我有AddBankAccount()方法。我沒有包括班級的所有方法,但足以說任何公共財產必須使用方法進行更新。 我將創建一個IPerson存儲庫來處理CRUD操作。 public interface IPersonRepository {