我有以下代码,到目前为止,但我想知道它是否可以以任何方式改进,无论是为了速度还是为了防止任何潜在的其他问题。日志数据结构可以包含数十万个项目。
public void Save()
{
foreach (var v in _log_data)
{
string query = @"INSERT INTO TransactionLog ( DataType, UserName, UserEmail, UserCountry, [DateTime])
VALUES ({0}, {1}, {2}, {3}, {4})";
_ctx.ExecuteCommand(query, v.DataType, v.UserName, v.UserName, v.UserCountry, v.DateTime);
}
}
答案 0 :(得分:1)
使用SqlBulkcopy:
var sbCopy = new SqlBulkCopy("myConnectionString")
{
DestinationTableName = tableName,
BatchSize = 100000
};
sbCopy.WriteToServer(_log_data.AsDataReader());
AsDataReader()方法来自EntityDataReader Extensions