SQL Server 批量插入数据库 以及 List<T>与Model相互转换配合使用
时间: 2023-12-11 21:01:55 浏览: 159
好的,我可以为您解答这个问题。首先让我们来看一下如何进行 SQL Server 的批量插入。
SQL Server 批量插入数据库:
在 SQL Server 中,我们可以使用 BulkCopy 类来实现批量插入数据库。BulkCopy 类可以将数据从一个数据源快速地复制到另一个数据源。下面是一个使用 BulkCopy 类进行批量插入的示例代码:
```csharp
using System.Data.SqlClient;
using System.Data;
// ...
// 创建连接字符串
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
// 创建 DataTable 并填充数据
DataTable dataTable = new DataTable();
// 添加列
dataTable.Columns.Add("Id", typeof(int));
dataTable.Columns.Add("Name", typeof(string));
// 添加数据
dataTable.Rows.Add(1, "张三");
dataTable.Rows.Add(2, "李四");
// 执行批量插入操作
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
using (SqlTransaction transaction = connection.BeginTransaction())
{
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, transaction))
{
// 设置目标表名
bulkCopy.DestinationTableName = "dbo.TestTable";
// 设置映射关系
bulkCopy.ColumnMappings.Add("Id", "Id");
bulkCopy.ColumnMappings.Add("Name", "Name");
// 执行批量插入
bulkCopy.WriteToServer(dataTable);
}
transaction.Commit();
}
}
```
在以上代码中,我们首先创建了一个 DataTable,并填充了一些数据。然后使用 BulkCopy 类进行批量插入操作,将 DataTable 中的数据插入到数据库中的 TestTable 表中。
List<T> 与 Model 相互转换配合使用:
在开发中,我们经常需要将 List<T> 和 Model 之间进行相互转换。下面是一个使用 AutoMapper 库进行转换的示例代码:
```csharp
using AutoMapper;
// ...
// 定义 Model 类
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
// 定义 DTO 类
public class UserDto
{
public int Id { get; set; }
public string Name { get; set; }
}
// 初始化 AutoMapper
Mapper.Initialize(cfg => cfg.CreateMap<User, UserDto>().ReverseMap());
// 将 List<User> 转换为 List<UserDto>
List<User> userList = new List<User>()
{
new User() { Id = 1, Name = "张三" },
new User() { Id = 2, Name = "李四" },
};
List<UserDto> userDtoList = Mapper.Map<List<User>, List<UserDto>>(userList);
// 将 UserDto 转换为 User
UserDto userDto = new UserDto() { Id = 1, Name = "张三" };
User user = Mapper.Map<UserDto, User>(userDto);
```
在以上代码中,我们首先定义了一个 User 和一个 UserDto 类,它们之间的属性基本相同。然后使用 AutoMapper 进行转换操作,将 List<User> 转换为 List<UserDto>,以及将 UserDto 转换为 User。
希望以上内容能够对您有所帮助。
阅读全文