repository-pattern

    5熱度

    1回答

    我是新的存儲庫模式,但我嘗試過,我的目標是做一個設計,讓我可以輕鬆地進行一些編輯「依賴注入或配置編輯」,以便能夠切換到另一個ORM而無需觸摸其他解決方案層。 我達到這個實現: 這裏是代碼: public interface IRepository<T> { T Get(int key); IQueryable<T> GetAll(); void Save(T ent

    3熱度

    3回答

    我很難找到在DDD樣式模式中使用EF的直接例子。這也是我第一次使用DDD,並且有關於解決方案佈局以及如何使用某些DDD模式的幾個問題。 1)我見過的有關使用存儲庫模式w/EF的大多數示例僅顯示專用模型接口,如IContactRepository,然後是實現接口的具體類型。理想情況下,我喜歡使用像IRepository這樣的具有CRUD操作的基本功能集的東西。然後,我可以創建專門的存儲庫,如果有必要

    0熱度

    1回答

    我有以下對象: 人< - 聯繫 - > ClientsPerson < - 客戶端 我使用的是一個服務層倉庫模式。但已經在這裏,作爲完美主義者,我迷路了! 我也有一個PersonService,ClientService,我很確定我需要一個ContactService,它應該調用personService.Add(person)和clientsPersonService.Add(client) -

    3熱度

    1回答

    雖然我沒有做全面的DDD,但我發現存儲庫模式很吸引人,而且我嘗試沿着聚合根邊界來分割存儲庫。我在Entity Framework之上實現了存儲庫,在這裏ObjectContext允許工作單元樣式,因爲它跟蹤對實體的更改,並在調用SaveChanges時生成適當的SQL。 在我調用SaveChanges的時候,我在存儲庫中掙扎着兩種不同的方法 - 差別似乎是我採用的是工作單元還是活動記錄語義。如果我

    3熱度

    1回答

    我已經閱讀了關於向POCO注入數據訪問權的正確方法的問題,而共識似乎是「不」。好吧,那麼正確的方法是什麼?如果我有一個Order對象,並且我想要一個OrderLines的列表,我不想將這個列表明確地分配給POCO外部,這太可怕了。因此,如果我不能使用DI爲POCO提供一點智能,我是否需要創建一個可以獲取額外信息的虛擬對象?

    2熱度

    1回答

    裏面我有一個存儲的規則列表的表格。在我的代碼中,我需要檢索這些規則並維護規則列表(通過.Repository模式),以便我可以重用它們。然後我需要生成(業務邏輯)的基礎上進行的特定時間段規則對象的列表,例如,通過從在未來6個月來的數據庫中的規則過濾節日對象的列表,然後如果我需要進一步的6個月,我將需要對象根據檢索規則列表下面的6個月值,從而將現有的假期。 節日對象的列表是基於在預定期間的規則翻譯/

    2熱度

    4回答

    我正在爲我的應用程序使用存儲庫模式。我有一個類的用戶。用戶通過電子郵件標識。 UserRepository包含一個CreateUser(用戶用戶)方法。有一個業務規則說用戶應該有一個獨特的電子郵件。 我想實現一個事務,它首先檢查電子郵件是否正在使用,如果沒有,則創建用戶。 我應該在哪裏負責檢查電子郵件唯一性的代碼? 這絕對是一個商業規則;這是商業邏輯。我認爲把這個檢查放在我的UserReposit

    17熱度

    7回答

    我想知道如何在使用Repository模式時正確處理複雜對象圖的急切加載問題。這不是ORM特定的問題,我猜。 首先嚐試: public interface IProductRepository : IRepository<Product> { Product GetById(int id); IProductRepository WithCustomers(); } 這

    0熱度

    2回答

    如何在C#.net 2.0中實現存儲庫模式? 只顯示我的基本結構。因爲我們在.net 2.0中沒有DataContext。

    6熱度

    2回答

    似乎有很多關於實現Linq to SQL的Repository模式的示例。其中大多數都具有IRepository和DI;有些已經實施了工作單位,有些則沒有。我嘗試將大部分由SO和Google上的搜索返回的結果閱讀爲從Linq到SQL存儲庫模式。儘管如此,我還沒有遇到完整的解決方案。 從我讀,我實現了一個存儲庫模式,如下圖所示: 我使用DI登記在其上存儲庫依賴接口: this.container.R