用于多个站点的ASP Core WebAPI,将数据保存到不同的数据库

时间:2019-04-08 20:20:26

标签: angular entity-framework asp.net-web-api

我是一家公司的Web开发人员,该公司为多个客户创建Web应用程序。我想知道是否可以创建针对n个数据库的Web API。我的意思是,基本上所有站点都将具有包含数据的相似字段,给出或接受几个字段。

对于前端,我使用Angular 5及更高版本,获取表单信息并将数据发布到数据库中。我将ASP Core用于后端处理。

如果我有三个需要将数据发布到三个不同数据库的站点,是否可以使用ASP Core Web API的单个实例通过使用不同的连接字符串和实体框架来处理表单数据并保存。我将从Angular UI中发出带有表单信息和给定ID的发布请求,然后基于该ID获得具有正确连接字符串的正确DB_Context并处理数据。

我正在考虑这样做,否则我将不得不为每个站点创建一个单独的Web Api。

1 个答案:

答案 0 :(得分:1)

您的请求没有技术限制。您可以在应用程序中根据需要使用任意数量的数据库。

在后端的数据访问层中,您需要创建多个DbContext,每个要使用的数据库都创建一个。 这些DbContext将由您的存储库使用,那些存储库将由您的服务使用,而这些服务将由您的控制器使用(例如)。

您只需要将正确的端点与正确的DbContexts链接,即可获取相关数据。

这里是有关如何在一个应用程序中使用多个DbContext的文章:https://hackingmonkeys.com/blog/2018-03-24/ef-core-multiple-db-contexts-schemas-and-projects

但是,请记住,您的API将会发生变化,增长,并且将很难维护。开发三个独立的应用程序所需的时间可能要比开发三个单独的应用程序所需的时间更多。