我试图弄清楚如何使用Entity Framework正确实现UoW和Repository模式。我看到很多帖子反对它,但它似乎仍然是正确的方法。
我正在尝试根据此blog post进行操作。我想弄清楚的最后一件事是如何将存储库注入到UoW中,但这种方式可以让我按需执行。存储库的数量可能会增长,然后构造函数也会增长。此外,为可能只需要1或2的操作实例化所有存储库似乎是浪费资源。
如何以一种让我轻松编写单元测试的方式来实现?
我发现的唯一方法,就是让我在构造函数中注入存储库(因此它们并非都被实例化,即使它们不是特定操作所需的)也是在getter中执行的:
for package in Packages! {
let titles = (package["title"]) as! String
self.tts.append(titles)
}
self.collectionView.reloadData()
然而,这种方法会在代码中产生很多噪音,因为当我有50个存储库时,我需要50个道具。
答案 0 :(得分:0)
您可能希望将描述的方法(我喜欢)与此处描述的通用存储库方法结合起来https://cpratt.co/truly-generic-repository/ 如果您所引用的博客文章中的UoW模式得到了适当的实现,那么除了本文中的IReadOnlyRepository之外,您将不需要任何其他内容,它将为存储库提供所需的一切。