c# - 在循环内将数据插入数据库时,有没有办法使 foreach 循环更快?
问题描述
我正在为foreach
循环内的每个成员将消息插入数据库,这使得应用程序变慢,因为它将运行 200 多次为每个成员添加消息。我试图使它成为并行foreach
循环,但这会在保存数据时抛出连接错误,并且我有多个foreach
循环。
有人来帮忙吗?
foreach (var item in coachee)
{
MessageRecord MsgRecord = new MessageRecord();
MsgRecord.MessageID = msgID;
MsgRecord.CoachID = coachID;
MsgRecord.CoacheeID = item.CoacheeIdentityID;
MsgRecord.CreatedBy = Session["user"].ToString();
MsgRecord.IsActive = 1;
MsgRecord.CreatedDate = DateTime.Now;
message.DocumentPath = DocumentPath;
bool val = await _repoObjCoach.AddMessageRecordForCoacheeasync(MsgRecord);
if (val)
{
coacheeMails.Add(item.EmailID);
if (item.Parent_Email != null)
{
ParentMails.Add(item.Parent_Email);
}
if (item.PhoneMail != null)
{
PhoneMails.Add(item.PhoneMail);
}
if (Convert.ToInt32(Session["Role"]) == ConstantData.Role.Coach)
{
_repoObjCoach.MessageCreatedNotification(MessageCreatedByCoach.Coachee + Session["user"].ToString(), string.Concat(LinkPageMessageCreated.coachee, item.UserID.ToString()), "", item.CoacheeIdentityID);
}
else
{
_repoObjCoach.MessageCreatedNotification(MessageCreatedByCoach.alternateCoachee + Session["user"].ToString(), string.Concat(LinkPageMessageCreated.coachee, item.UserID.ToString()), "", item.CoacheeIdentityID);
}
}
}
解决方案
推荐阅读
- typescript - NestJS - WebsocketGateway 中的 ValidationPipe 返回内部服务器错误
- python - Python TypeError: CreateAccount() missing 1 required positional argument
- mysql - SQL计算两列并减去
- javascript - Web Worker 结构化克隆在 IE11 中是否为 Set/Map 损坏?
- regex - 多模式替换以及python中的空格
- json - 为什么当我看到模型中定义的属性时,我的 Django 序列化程序告诉我该属性不存在?
- c# - 如何使用 Microsoft Graph API 和 Graph 客户端添加 SharePoint 选项卡?
- sql - 有多个连接时避免重复信息?
- snowflake-cloud-data-platform - 在雪花中你怎么做减所有?
- android - 无法进行片段到片段的通信