我试图找到一种比我现在使用的 Linq 更好、更快的方法来插入大量数据(~50K 行)。我试图写入本地数据库的数据位于序列化并从 WCF 接收的 ORM 映射数据列表中。我热衷于使用 SqlBulkCopy,但问题是表是规范化的,实际上是具有一对多关系的序列或互连表。
这是一些说明我的观点的代码:
foreach (var meeting in meetingsList)
{
int meetingId = dbAccess.InsertM(value1, value2...);
foreach (var competition in meeting.COMPETITIONs)
{
int competitionId = dbAccess.InsertC(meetingid, value1, value2...);
foreach(var competitor in competition.COMPETITORs)
{
int competitorId = dbAccess.InsertCO(comeetitionId, value1,....)
// and so on
}
}
}
其中 dbAccess.InsertMeeting 看起来像这样:
// check if meeting exists
int meetingId = GetMeeting(meeting, date);
if (meetingId == 0)
{
// if meeting doesn't exist insert new
var m = new MEETING
{
NAME = name,
DATE = date
}
_db.InsertOnSubmit(m);
_db.SubmitChanges();
}
提前感谢您的任何答案。博扬