2017-06-19 79 views
0

我正在使用实体框架和洋葱体系结构,使我的网站可维护和持久。现在,当我跟着一个特定的洋葱架构例如,我结束了:实体框架配置文件编译错误

  1. 域(实体和域接口)
  2. 库(IRepo和回购等)
  3. 服务(建立UI和回购之间的链接,以尊重的SoC(如果我没有得到它)​​等)
  4. UI(在我的情况下,MVC项目)

现在我已经从我的情境分开我的实体框架的实体。实体进入而上下文进入存储库。这意味着当我启用迁移时,configuration.cs文件已被添加到Domain中的迁移文件夹中,但由于Domain没有依赖关系,因此我无法访问我的上下文(它位于更高层,因此会违反洋葱体系结构规则(依赖不能向外))。

  • 我应该将我的migrations文件夹移动到存储库吗?
  • 我应该在enable-migrations存储库中吗?
  • 我的configuration.cs文件非常薄,是否必须保留它(它确实保持AutomaticMigrationsEnabled为false,这让我怀疑这一点,似乎是懒惰的事情,但谁知道)?

感谢您的帮助!

回答

1

您应该用尽可能少的依赖关系越好,这样您可以:

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

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

+0

好的,谢谢,所以我猜上下文将在'Domain'和'Repository'之间的项目中? –

+1

是的,这是一种选择。我正在使用它。 –