解决方案中的数据库位置
Database location in solution
我正在使用 C#、WPF 和 Prism。我想创建模块化应用程序,但我遇到了问题。我不知道从哪里从数据库中获取数据。这是我的解决方案:
我有两个模块 - ModuleMainFilter
和 ModuleResults
。我最初的想法是,我将通过 Infrastructure
从模块与当前位于 DensoMSBFrontDataClient
中的数据库进行通信。但我不能这样做,因为由于循环依赖问题,我无法在 Infrastructure
中引用 DensoMSBFrontDataClient
。那么我应该把我的数据库放在哪里呢?我想不出任何可用的想法。
我认为你应该做的是将你的数据库实现放在它自己的模块中,并向基础设施模块添加一个接口实现。然后数据库模块应该实现这个接口,所有使用数据库服务的模块都应该引用基础设施,尤其是这个接口。查看 StockTraderRI 以及他们如何实施 MarketFeedService。
如果我没理解错的话,下面是您应用的分层架构:
DensoMSBFrontDataClient
Modules
Infrastructure
DensoMSBFrontDataClient
引用了 *Modules
,后者引用了基础结构并将此公共组件用作数据交换。命令链是自上而下的。因此,您的数据库应该放在最低层,并且只能从那里访问。否则你总会遇到这样的问题。
我正在使用 C#、WPF 和 Prism。我想创建模块化应用程序,但我遇到了问题。我不知道从哪里从数据库中获取数据。这是我的解决方案:
我有两个模块 - ModuleMainFilter
和 ModuleResults
。我最初的想法是,我将通过 Infrastructure
从模块与当前位于 DensoMSBFrontDataClient
中的数据库进行通信。但我不能这样做,因为由于循环依赖问题,我无法在 Infrastructure
中引用 DensoMSBFrontDataClient
。那么我应该把我的数据库放在哪里呢?我想不出任何可用的想法。
我认为你应该做的是将你的数据库实现放在它自己的模块中,并向基础设施模块添加一个接口实现。然后数据库模块应该实现这个接口,所有使用数据库服务的模块都应该引用基础设施,尤其是这个接口。查看 StockTraderRI 以及他们如何实施 MarketFeedService。
如果我没理解错的话,下面是您应用的分层架构:
DensoMSBFrontDataClient
Modules
Infrastructure
DensoMSBFrontDataClient
引用了 *Modules
,后者引用了基础结构并将此公共组件用作数据交换。命令链是自上而下的。因此,您的数据库应该放在最低层,并且只能从那里访问。否则你总会遇到这样的问题。