LINQにはかなり精通していますが、SQLには精通していません。カーソルはひどいので使用すべきではないことを理解しています。私はSQL構文をよく知っていますが、このクエリを変換してLinqからSQLに更新する方法を理解しようとしています。カーソルを使用せずにForeachofSQLを実行する方法がわかりません。次に、何をすべきかについて少し迷っています。
ご覧のとおり、約150,000行のテーブル全体を調べているので、Linqpadは更新を処理できないため、SQLでこれを実行する必要があります。
最初のテーブルの各レコードを反復処理してから、他の2つのテーブルでGUIDを見つけ、それらの2つのテーブルからそのデータを取得して、元のテーブルを更新します。
誰か助けてもらえますか?皆さんありがとう!!!!!
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();