【发布时间】:2016-07-04 14:20:16
【问题描述】:
我正在开发我的第一个 C# Web 应用程序,它需要按需从多个服务器导入数据。
我将服务器名称存储在表 (DataServer) 中。所以我需要连接到每台服务器并运行一个查询,我想将其结果添加到我的数据模型中。
这是我目前在我的存储库中拥有的
public void ScanServer(int serverKey)
{
var serverName = FindByKey(serverKey).ServerName;
var sqlQuery = "SELECT name ,description FROM myTbl";
Context.Database.SqlQuery<Names>(sqlQuery);
}
我知道使用 Context 是不正确的,我希望用我的 DataServer 表中保存的连接字符串替换它。
然后需要将结果添加到我的 Names DataModel。
我在正确的轨道上吗?
【问题讨论】:
-
在我看来,您需要为每个服务器创建一个 DbContext 并传入连接字符串(这应该相当容易),然后如果您想要一些并行性,您可以执行
Context.Database...,你可以先做sqlQueries.Add(SqlQuery<Names>(sqlQuery).ToListAsync()),然后再做Task.WhenAll(sqlQueries)。
标签: c# sql-server entity-framework model-view-controller