C#MongoDB存储库体系结构
我们的项目最近使用官方10gen驱动程序从SQL数据库迁移到noSQL数据库(mogoDB)。该项目基于MVVM,使用Prism框架 我们使用的是通用存储库-每个集合的存储库 这里有几个问题:C#MongoDB存储库体系结构,c#,mongodb,repository-pattern,C#,Mongodb,Repository Pattern,我们的项目最近使用官方10gen驱动程序从SQL数据库迁移到noSQL数据库(mogoDB)。该项目基于MVVM,使用Prism框架 我们使用的是通用存储库-每个集合的存储库 这里有几个问题: repistory应该只包含基本的CRUD操作,还是可以 还有更具体的操作,例如基于用户的获取 在某些特定值上 出于绑定目的,我们需要某种自动映射 问题是,应该在哪一层进行?例如:“书” 具有“AuthorId”,但在View/ViewModel中,我们绑定到 'Book.Author.name'('Au
最后,我们决定采用以下方法:
对于基于SQL的实现,您是如何回答这些问题的?它不一定需要不同。有很多方法可以做到这一点,答案会有很大的不同。此外,您可能会发现您的数据结构需要重新思考<例如,code>Book.Author.Name可能需要额外的查询。您需要更复杂的“自动映射器”来处理这些类型的请求。@WiredPairie-在SQL实现中,存储库包含“使用模式”(由于使用dbcontext)和“更高级别”的数据访问操作(不仅仅是纯CRUD)。现在没有上下文。我不确定存储库的最佳实践是什么,是公开集合并只提供CRUD操作,还是保持集合私有并提供CRUD操作(一些查询方法)。我个人发现执行CRUD+操作是一种合理的模式,特别是MongoDB CRUD-only操作一般来说不是很有用(太有限了)。投票结束。3个问题,而不是FAQ中所述的一个具体问题。