【问题标题】:Patterns to segregate Models and DbContext on ASP.NET Core microservices在 ASP.NET Core 微服务上分离模型和 DbContext 的模式
【发布时间】:2018-08-03 23:54:06
【问题描述】:

我正在尝试让我的服务单独部署而不相互依赖。

所有服务都将使用使用 EF Core 的相同 SQL 数据库(相同的 DbContext)。

我正在使用一个单独的项目 (MyServices.Data),其中包含我的所有模型和 DbContext,但我真的依赖于此,如果此 Data 项目有任何更改,则需要重新部署所有服务。

对于这种情况有什么模式/方法可以让我的项目不依赖它吗?

【问题讨论】:

  • 是的,您只需为每个服务使用一个数据库和一个数据项目。技术无关紧要 - 这不是微服务的主要原则之一 - 不要共享数据库!
  • @PavelAgarkov 你对这个肯定有任何引用吗?但是,假设我走这条路(看起来没问题),我的一些服务需要检查与用户相关的数据。正确的方法是创建一个用户服务来检查这些数据?
  • 是的,你需要一个 api。对于 .net-cor,有身份服务器 4 v2。您可以从观看 NDC Conf / GOTO conf / QCon 等的 youtube 视频开始。他们甚至有专门的微服务部分——在那里你可以找到所有的模式和书籍来学习

标签: design-patterns asp.net-core .net-core microservices ef-core-2.0


【解决方案1】:

这是阅读模式和最佳实践的一个很好的开始:

Web Applications with ASP.NET Core Architecture and Patterns guidance

虽然不建议您让您的微服务共享一个数据库。如果你走这条路,每个 MS 都应该有自己的方案和自己的迁移历史表。这可以使用 EF Core 轻松完成。正如已经指出的那样,每个 MS 都应该有自己的数据模型,并且它们不能共享表,即使它们可能包含几乎相同的数据。

微服务不应共享数据模型。

【讨论】:

    猜你喜欢
    • 2019-11-16
    • 2018-12-21
    • 1970-01-01
    • 2021-11-01
    • 2015-08-18
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多