解决方案中的数据库位

时间:2015-09-08 13:49:17

标签: c# wpf architecture prism

我正在使用C#,WPF和Prism。我想创建模块化应用程序,但我有问题。我不知道从数据库中获取数据的位置。这是我的解决方案:

Project Solution

我有两个模块 - ModuleMainFilterModuleResults。我最初的想法是,我将从模块通过Infrastructure传递到我当前位于DensoMSBFrontDataClient的数据库。但我无法做到这一点,因为由于循环依赖问题,我无法在DensoMSBFrontDataClient中引用Infrastructure。那么我应该放置我的数据库?我无法提出任何有用的想法。

2 个答案:

答案 0 :(得分:1)

我认为你应该做的是将数据库实现放在它自己的模块中,并将一个接口实现添加到Infrastructure模块。然后,databasemodule应实现此接口,并且所有使用数据库服务的模块都应该引用Infrastructure,特别是此接口。看看StockTraderRI以及他们如何实施MarketFeedService。

答案 1 :(得分:1)

如果我理解正确,请点击您应用的分层架构:

  • DensoMSBFrontDataClient
  • Modules
  • Infrastructure

DensoMSBFrontDataClient引用*Modules,它引用基础结构并将此公共组件用作数据交换。命令链自上而下。因此,您的数据库应该放在最低层,并且只能从那里访问。否则你总会遇到这种问题。