实体框架配置文件编译错误

时间:2017-06-19 14:15:25

标签: c# entity-framework onion-architecture

我正在使用Entity Framework和洋葱架构来使我的网站可维护和持久。现在,当我按照特定的洋葱架构示例时,我最终得到了:

  1. 域(实体和域接口)
  2. 存储库(IRepo和Repo等......)
  3. 服务(建立UI和Repo之间的链接,尊重SoC(如果我正确的话)等等......)
  4. UI(在我的案例中是一个MVC项目)
  5. 现在我将我的实体框架实体与我的上下文分开了。实体进入,而上下文进入存储库。这意味着当我启用迁移时,configuration.cs文件已添加到Domain中的迁移文件夹中,但由于Domain没有依赖项,因此我无法访问我的上下文(它位于更高的位置)因此,这将违反洋葱架构规则(依赖关系不能向外))。

    • 我应该将迁移文件夹移动到存储库吗?
    • 我应该在存储库中enable-migrations吗?
    • 我的configuration.cs文件非常薄,是否必须保留它(它会使AutomaticMigrationsEnabled保持为假,这让我怀疑这一点,看起来像是懒得做,但谁知道?)

    感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

域名应尽可能少依赖,因此您可以:

  • 创建一个新项目,只移动该项目的上下文和enable-migrations。通过这样做,您可以将存储库与上下文分离。
  • 保持原样,并在存储库项目中使用enable-migrations,就像你说的那样。

我在洋葱建筑项目中使用了第一个选择。