【发布时间】:2017-05-01 01:11:49
【问题描述】:
我有old db,我正在将信息转移到new db。
所以我需要创建表Hospitals,其中包含来自hospitals1 和hospitals2 的信息
using (var oldDb = new oldBAEntity())
{
using (var newDb = new NewDbContextEntities())
{
var queryHospitals = oldDb.Hospitals.Join(Hospitals2)
}
}
我的问题是在 c# 中加入是如何工作的。我需要根据来自医院的IdCode 获取一列信息。
【问题讨论】:
-
有些事情不清楚:1)两个表都在同一个数据库中吗?如果不是,则加入将不起作用,因为每个数据库都有一个上下文。 2)您有哪些列以及执行连接的关键列(那些包含有关医院的唯一信息的列)。
-
在新数据库中我们有表医院,在旧数据库中我们有表医院1 和医院2。我需要从 hospital1 中取出所有列,并将它们放入新 db 中新表 Hospitals 中的新 db + 列 Settlement 中。 Hospitals1 的 Idcode 列是与表 Hospitals2 的引用,以便获取结算记录。
-
医院包含:id、医院名称、医院地址和结算ID 我们从医院1 获取id,从医院1 获取医院名称,从医院1 获取医院地址,我们需要从医院2 获取结算ID
-
好的。您应该将
oldBAEntity中的所有医院放入 RAM (ToList()),并对NewDbContextEntities()中的医院执行相同操作。然后在内存中执行 jois 并将结果添加到新数据库中。 -
@sprinter252 嗯,我没听懂你的意思。我正在创建 List
(这是一个类型为 newDB 的列表。我从 olddb 中获取来自 hospital1 的所有信息并将其记录在例如 var query1 = olddb.hospitals1 中,但我如何加入hospital2.settlementid 基于记录的 IdCode?应该是 Hospitals1.IdCode = Hospitals2.IdCode。在 sql 中查询非常简单:SELECT * FROM Hospital1 Join Hospital2.SettlementID ON Hospital1.IdCode = Hospital2.IdCode 但我不知道如何在 C# 中做到这一点
标签: c# sql-server database join