2
我試圖找到一種更好更快的方式來插入比我現在使用的Linq大量的數據(〜50K行)。 我試圖寫入本地數據庫的數據位於從WCF序列化並接收到的ORM映射數據列表中。 我很喜歡使用SqlBulkCopy,但問題是這些表是規範化的,實際上是一個具有一對多關係的序列或互連表。將關係數據錶快速插入到SQL Server 2008數據庫中
下面是一些代碼,說明我的觀點:
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();
}
感謝您事先的任何答案。 博揚
+1我總是使用臨時表第一方..總是有第三方數據的問題,它需要清洗 – SQLMenace 2010-06-09 13:58:42
這是一個有趣的想法...我會試試看,謝謝 – TheBoyan 2010-06-09 13:59:02
你可以得到ID使用OUTPUT clausue從父表插入返回,請閱讀聯機叢書中的內容。 – HLGEM 2010-06-09 14:50:54