我有一个关于设计流畅的存储库容器的问题。
实际上我想以这种方式获取数据:
IEnumerable list = RepositoryContainer
.Of<Person>()
.Where(p => p.name == "test")
.Of<Member>()
.Where(m => m.role == "role1")
.GetItems()
GetItems()
将只运行一个返回每个注册存储库上的项目的函数。
现在我的问题是,RepositoryContainer.Of<T> return IRepo<T>
所以我不能用它制作链条。
我需要一种暴Of<T>
露在外面的方法,但我不知道是否有任何最佳做法。
真正需要的是我可以用一种方法合并相同类型的项目。