首页 > 解决方案 > 具有多个 dbcontext 和不同连接字符串的 GraphQL 查询

问题描述

我正在尝试使用新的 Web API 扩展旧应用程序,并且选择了 GraphQL / Hotchocolate 作为要采用的技术。

基础 SQL Server 数据库至少包含 3 个数据库。“至少”意味着,可以有更多的数据库,这取决于租户的数量,由应用程序管理。

这给我带来了一个问题,我无法在 Startup 类的 ConfigureService 方法中添加 dbcontext 服务,因为在实例化启动类时实际租户是未知的。

三个数据库中的第一个始终相同,所以没有问题,但是数据库 2 和 3 的连接字符串略有不同,看起来像这样“...Initial Catalog=TenantStructure{0}...”“...初始目录 = TenantData{0}..."在 appsettings.json 中。

后缀“{0}”需要替换为实际的tenantid,它必须是查询的一部分。

似乎我必须在每次查询时打开与结构数据数据库的连接,我的问题是,如何将必要的租户 ID 等附加信息传递给查询。据我所知,我不能将租户 ID 用作过滤器值。

谢谢你的帮助。

标签: c#.netgraphqlhotchocolate

解决方案


推荐阅读