public void AddLetters(IList<int> customerIds, string title, string content, LetterEnum.LetterType type)
{
// 插入内容,获取内容ID
var msgContentId = this.AddLetterContent(title, content, 2);
// 站内信接收者表字段初始化
var letterDataTable = this.InitDataTable();
foreach (var customerId in customerIds)
{
var letterDataRow = letterDataTable.NewRow();
letterDataRow["CustomerId"] = customerId;
letterDataRow["MsgContentId"] = msgContentId;
letterDataTable.Rows.Add(letterDataRow);
}
using (var conn = new SqlConnection(_sqlMapper.DataSource.ConnectionString))
{
conn.Open();
using (var sqlBulkCopy = new SqlBulkCopy(conn))
{
sqlBulkCopy.DestinationTableName = "Letter";
sqlBulkCopy.BatchSize = letterDataTable.Rows.Count;
if (letterDataTable.Rows.Count > 0)
{
sqlBulkCopy.WriteToServer(letterDataTable);
}
}
}
}
/// <summary>
/// 初始化Letter表结构
/// </summary>
private DataTable InitDataTable()
{
var dataTable = new DataTable();
using (var conn = new SqlConnection(_sqlMapper.DataSource.ConnectionString))
{
var queryString = string.Format(@"select top 0 * from {0}", "Letter");
var adapter = new SqlDataAdapter(queryString, conn);
adapter.Fill(dataTable);
}
return dataTable;
}