我正在开发我的第一个C#web应用程序,它需要根据需要从多个服务器导入数据。实体框架在多个服务器上执行查询
我有存储在一个表(数据服务器)的服务器名称。所以我需要连接到每个服务器并运行一个查询,我想将其结果添加到我的数据模型中。
这是我目前在我的仓库
public void ScanServer(int serverKey)
{
var serverName = FindByKey(serverKey).ServerName;
var sqlQuery = "SELECT name ,description FROM myTbl";
Context.Database.SqlQuery<Names>(sqlQuery);
}
我知道使用上下文是不正确的,我希望能取代在我的数据服务器表内所保持的连接字符串。
结果则需要被添加到我的名字DataModel中。
我在正确的轨道上吗?
在我看来,你将需要有创建每个服务器的DbContext和连接字符串中传递(这应该是相当容易),然后你可以做'Context.Database ...'如果你想要一些并行性,你可以做'sqlQueries.Add(SqlQuery类(SqlQuery类).ToListAsync())'然后做了'Task.WhenAll( sqlQueries)'。 –