【问题标题】:LinqPad - Share data between queriesLinqPad - 在查询之间共享数据
【发布时间】:2017-12-04 15:05:08
【问题描述】:

我有两个连接到两个不同的服务器。 我想从两台服务器上的数据库中访问数据。这似乎是不可能的(或者至少很复杂)。

我认为在一台服务器上执行一些请求,将结果存储在内存中的某个变量中,然后在另一台服务器上的另一个查询中访问该变量可能会更容易。

我尝试使用 MyExtensions 中的静态变量以及使用 AppDomain.CurrentDomain.SetData("myVariable", results)AppDomain.CurrentDomain.GetData("myVariable") 但两者都不起作用。

【问题讨论】:

  • 两台服务器上的数据库结构是否相同?如果是这样,您可以使用 var dc2 = new UserQuery( new SqlConnection(connectionString)); 创建第二个连接
  • 数据库位于不同的服务器上(一个 Azure 一个由另一个提供商托管)。
  • 如果数据库结构完全相同,那么在两台服务器上应该没有关系。
  • 这些是不同的、不相关的、不同的架构、不同的、不相关的服务器上的数据库。

标签: linqpad


【解决方案1】:

我也遇到了同样的问题,但最终解决方案比我预期的要简单得多。

由于我有一个包含两个数据上下文(在不同服务器上)的项目,我希望查询,我在我的 .dll 中添加了一个引用(查询中的 F4,然后是 Additional References->Find your bin 文件夹或其他)项目。我在查询的 app.config 中添加了一个 config/connectionstrings 部分,其中包含我的项目上下文正在使用正确的连接信息寻找的 connectionStrings 的名称。

这让我不仅可以访问我的数据上下文,还可以访问我项目中的大部分业务逻辑(例如,repos/dtos/viewModels/其他转换)。从那里,我可以从数据库/服务器 A 中获取我需要的任何内容,将其放入我的首选数据类型(通常是列表),然后根据需要让它与来自数据库/服务器 B 的数据进行交互。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 2011-01-13
    • 2011-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-31
    相关资源
    最近更新 更多