分组多个 LinqPad 数据上下文连接

Grouping multiple LinqPad data context connections

我有一个数据源,我想为其构建一个 LinqPad 数据上下文驱动程序。数据源的结构相对于关系数据库服务器来说相当简单:我也有一个"server",它可以管理多个"databases",其中可以包括"tables"。

我已经阅读了可用的文档并查看了示例 here,并且我已经能够创建驱动程序。

但是,当我将更多时间连接到同一个 "server" 上的不同 "databases" 时,它们会出现在树中的新项目下,如下所示:

我想模仿默认(LINQ to SQL)内置提供程序的工作方式,它有一个创建多个连接的选项,使用 "Display all in a Treeview" 选项:

这会为服务器生成一个树节点,如果我展开树节点,我将拥有所有数据库:

我相信这些实际上是不同的连接,因为它们在连接选择下拉列表中显示为不同的项目。

我试图将连接指向 "server" 而不是 "database",查询所有 "databases"。这种方法的问题是,在这种情况下,只创建了一个类型化的数据上下文,但我的每个 "databases" 都需要一个,因为 "database" 的实际名称是我的上下文需要的参数,以便它可以访问数据(并且由于 EF DbContexts 还需要连接字符串中的数据库名称,所以我很确定我上一张图片中的每个连接都具有不同的上下文,它们也具有特定的连接字符串)。

我也尽可能多地查看了 API ,看看我是否可以 "attach" 将新节点添加到树中的现有节点,但我没有看到任何 API 用于查询现有项目。

有没有办法做到这一点,或者这需要一些内部 APIs?

遗憾的是,这无法通过可扩展性模型完成。现在它依赖于内部 API。