我一直在阅读Professional ASP.NET MVC 1.0书中的第11章(可测试设计模式).在本章的示例中,数据访问被分成许多存储库:IOrderRepository,IProductRepository等.这些都是有意义的:单个数据库的单个存储库.
但是,当您考虑表之间的链接时,这会对我造成一些影响:订单包含许多产品.当Order类由LINQ-to-sql创建时,订单类将具有Products集合,该集合枚举与该订单相关的所有产品.因此,通过使用此集合,我们绕过了ProductsRepository.
因此,在模拟时,我不仅要模拟OrderRepository和ProductRepository,我还必须在返回的Order对象中填充Products集合.这意味着模拟的OrderRepository必须知道模拟的ProductsRepository等等.
忽略LINQ如此友好地为我创建的这些集合似乎是浪费,所以我的问题是,在这种情况下,单个存储库不会更有意义吗?