我精通LINQ,但不精通SQL。我知道游标很可怕,不应该使用。我非常了解 SQL 语法,但我试图弄清楚如何将此查询转换为从 Linq 更新为 SQL。我不知道如何在不使用游标的情况下通过 SQL 的 Foreach,而且我对下一步该做什么有点迷失。
如您所见,我正在浏览大约 150,000 行的整个表 Linqpad 无法处理更新,因此我需要在 SQL 中完成此操作。
我遍历第一个表中的每条记录,然后在另外两个表中找到一个 Guid 并从这两个表中提取该数据并更新原始数据。
任何人都可以帮忙吗?谢谢大家!!!!
CS_Code.UtopiaDataContext db = new CS_Code.UtopiaDataContext();
var getFirst = (from xx in db.Utopia_Province_Data_Captured_Gens
select xx);
foreach (var item in getFirst)
{
var updateItem = (from xx in db.Utopia_Province_Infos
where xx.Province_ID == item.Province_ID
select xx).FirstOrDefault();
if (updateItem != null)
{
item.Owner_User_ID = updateItem.User_ID;
item.Last_Login_For_Province = updateItem.Last_Login_Province;
item.Date_Time_User_ID_Linked = updateItem.Date_Time_Added;
item.Added_By_User_ID = updateItem.Added_By_User_ID;
}
var updateItema = (from xx in db.Utopia_Province_Identifiers
where xx.Province_ID == item.Province_ID
select xx).FirstOrDefault();
if (updateItema != null)
{
item.Owner_Kingdom_ID = updateItema.Owner_Kingdom_ID;
item.Kingdom_ID = updateItema.Kingdom_ID;
item.Province_Name = updateItema.Province_Name;
item.Kingdom_Island = updateItema.Kingdom_Island;
item.Kingdom_Location = updateItema.Kingdom_Location;
}
}
db.SubmitChanges();