Sql Server EF 批量数据录入

using (var conn = new SqlConnection(connectionString))
{
	//SqlBulkCopy:大容量加载带有来自其他源的数据的 SQL Server 表
	//SqlBulkCopyOptions:加载方式
	using (var sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction))
	{
		try
		{
			//超时
			sqlbulkcopy.BulkCopyTimeout = 600;
			//数据库目标表名(如果有架构名,需要表示为 '架构名.表名')
			sqlbulkcopy.DestinationTableName = tableName;
			for (int i = 0; i < dt.Columns.Count; i++)
			{
				//列名映射:源列名-目标列名
				//这里的写法需要保持DataTable和数据库表的列名一致
				sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
			}
			//数据写入目标表
			sqlbulkcopy.WriteToServer(dt);
		}
		catch (System.Exception ex)
		{
			throw ex;
		}
	}
}

示例代码

SqlServerUseEFDemo


上一篇:C# 对象类型映射转换方法总结,表达式树实现高效转换


下一篇:CodeGo.net> SqlBulkCopy到具有复合主键的表