EF Core(3.0)中DbContext的远程使用和DI

时间:2019-07-23 08:44:30

标签: asp.net-core .net-core entity-framework-core

我想将数据库“核心”作为隔离计算机上的一项服务隔离,并通过TCP / IP或其他连接层从其他服务获得访问权限,而其他服务则是来自数据库的必需数据(远程数据库连接)。 在数据库服务中,我想创建内存中的dbcontext,它可以用DI替换数据库dbcontext请求。

有人可以向我解释做到这一点的最佳方法吗?可能在github上有一些项目,还是可以在EF Core(3.0)中“开箱即用”找到此功能?

谢谢。

1 个答案:

答案 0 :(得分:1)

您的其余问题是可以理解的(尽管很广泛),但您却因以下原因而迷失了我:

  

在数据库服务中,我想创建一个内存中的dbcontext,它可以用DI替换数据库dbcontext请求。

您当然可以创建HTTP服务以用于持久性,而不必直接使用DbContext。基本上,这就是微服务。但是,您将需要通过 client 与该服务进行交互。在使用HTTP服务或API(通常称为API)的情况下,该客户端为HttpClient。听起来您想以某种方式仍然使用DbContext,但可以在后台与该服务交互。那是不可能的。

就“开箱即用”而言。实际上没有任何东西,因为每个数据源以及微服务都是不同的。您可以使用OData或GraphQL来获得最接近的结果。两者都需要某种程度的配置,因此它们仍然不是“开箱即用”的,但是两者都将允许您针对某个端点发出类似查询的请求,这意味着您不必设计大量的不同端点处理不同类型的查询或操作。