Я хорошо разбираюсь в LINQ, но не в SQL. Я понимаю, что курсоры ужасны и не должны использоваться. Я довольно хорошо знаю синтаксис SQL, но я пытаюсь понять, как преобразовать этот запрос и обновить его до SQL из Linq. Я не знаю, как пройти через Foreach SQL без использования курсоров, и я немного потерялся в том, что делать дальше.
Как видите, я просматриваю всю таблицу примерно из 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();