第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

插入批量記錄。也許使用 SQL

插入批量記錄。也許使用 SQL

C#
三國(guó)紛爭(zhēng) 2023-09-24 17:19:05
我有一個(gè)按鈕,表中包含用戶列表ButtonUsers。Button使用用戶列表更新父級(jí),并且UserList應(yīng)更新所有其他按鈕。并非每次都是如此,因此每個(gè)按鈕都有自己的列表。問題是我可能有 5000 個(gè)按鈕,每個(gè)按鈕都應(yīng)該更新。我嘗試一次拉動(dòng)所有按鈕,然后拉動(dòng)必要的用戶,并將每個(gè)按鈕狀態(tài)設(shè)置為已修改。當(dāng)我迭代完所有按鈕后,調(diào)用SaveChanges().public bool UpdatePreviousButtons(Button button, List<string> userList){   var buttons = fieldRepo.GetFieldsCreatedFrom<Button>(button.ID);   var users = fieldRepo.GetUsersFromIDs(userList);   foreach(var btn in buttons)   {      btn.UserList = users;      fieldRepo.UpdateFieldGeneric<Button>(btn);   }   return fieldRepo.Commit();}問題似乎是它不會(huì)批量插入記錄,而是每次調(diào)用插入一條記錄。這不可避免地會(huì)導(dǎo)致超時(shí),并且需要很長(zhǎng)時(shí)間。我一直在考慮用 手動(dòng)完成Context.Database.ExecuteSqlCommand()。使用實(shí)體框架有更好的方法嗎?
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以嘗試 SqlBulkCopy 類:


作為如何使用它的簡(jiǎn)單示例:


var data = new DataTable();

data.Columns.Add("Name");

data.Columns.Add("Id");


for (var i = 1; i< 10_000; i++)

{

? ? data.Rows.Add($"Name={i+1}", i+1);?

}


using (var sqlBulk = new SqlBulkCopy(_connectionstring))

{

? ? sqlBulk.DestinationTableName = "People";

? ? sqlBulk.WriteToServer(data);

}


查看完整回答
反對(duì) 回復(fù) 2023-09-24
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)