2
我们的项目最近使用官方10gen驱动程序从SQL数据库迁移到noSQL数据库(mogoDB)。项目基于使用Prism框架的MVVM。C#MongoDB仓库架构
我们正在使用通用存储库 - 每个集合的存储库。
又来了几个问题:
应该repistory只包含基本的CRUD操作,或可 有更具体的操作,例如对某些特定的值取基于 用户。
对于绑定的目的,我们需要某种自动映射, 的问题是,应该在哪一层完成?例如:'Book' 具有'AuthorId',但在View/ViewModel中,我们绑定到 'Book.Author.name'('Author'而不是'AuthorId'当然会被取消映射 属性。
从另一个通用 知识库访问某个知识库是不是很好的做法?它们是否应该彼此可见?
你是如何回答这些问题的基于SQL的实现?它不一定需要有所不同。有很多方法可以做到这一点,答案会有很大的变化。 – WiredPrairie
另外 - 你可能会发现你的数据结构需要重新考虑。例如'Book.Author.Name'可能需要额外的查询。您需要更复杂的“自动映射器”来处理这些类型的请求。 – WiredPrairie
@WiredPrairie - 在SQL实现中,存储库包含“使用模式”(由于使用dbcontext)和“更高级别”的数据访问操作(不仅是纯粹的CRUD)。现在没有上下文。我不确定存储库的最佳实践是什么,是否公开收集并仅提供CRUD操作,或者保持收集私有并提供更多的CRUD操作(一些查询方法)。 – yurislav