具有多个/不同数据源的C#存储库模式

具有多个/不同数据源的C#存储库模式,c#,design-patterns,C#,Design Patterns,在我的应用程序中,我必须创建一个存储库,它将为我提供数据对象。现在基于应用程序模式(用户输入),我必须从文件或数据库中获取数据。因此,它涉及存储库中的两个数据源 在存储库中处理多个数据源的最佳方法是什么 谢谢 在存储库中处理多个数据源的最佳方法是什么 具有多个存储库实现。每个数据源一个 例如,DataBaseDataObjectRepository和FileDataObjectRepository都实现了IDataObjectRepository我认为一个选项是,您可以实现不同的存储库,例如Da

在我的应用程序中,我必须创建一个存储库,它将为我提供数据对象。现在基于应用程序模式(用户输入),我必须从文件或数据库中获取数据。因此,它涉及存储库中的两个数据源

在存储库中处理多个数据源的最佳方法是什么

谢谢

在存储库中处理多个数据源的最佳方法是什么

具有多个存储库实现。每个数据源一个


例如,
DataBaseDataObjectRepository
FileDataObjectRepository
都实现了
IDataObjectRepository

我认为一个选项是,您可以实现不同的存储库,例如DatabaseRepository、FileRepository,因为命名意味着它只处理一种类型的源。然后您可以拥有一个数据服务,您可以将不同的存储库注入其中。然后在服务中,您可以实现逻辑来处理需要访问多个存储库的场景。应用层与数据服务交互。

感谢您的响应。我也在考虑同样的解决方案。有一个复杂性。DataBaseDataObjectRepository和FileDataObjectRepository中几乎没有使用文件数据源的方法。我是否创建一个公共类,然后派生FileDataObjectRepository和DataBaseDataObjectRepository类?>“我是否创建一个公共类,然后派生FileDataObjectRepository和DataBaseDataObjectRepository类?”我不会为其使用基类。但是如何重用代码取决于您。那么,在这种情况下,还有什么好的方法可以使用呢?如果您的存储库使用一种类型的数据对象。例如,
DataObjectA
,我无法想象它可以处理两个不同的数据源的场景。@Deepak存储库应该只负责从存储(无论是数据库、文件系统还是其他)加载数据,并将数据保留回来。您不应该对该数据进行任何操作,所以实际上,在Db和文件系统存储库之间共享代码听起来有点奇怪。。。但是,如果您已经这样设计了应用程序(因为模式不是一成不变的),那么您可以使用基类、外部注入对象、使用扩展方法,或者使用您喜欢的任何其他重用代码的方法。