我正在尝试使用 List<T>
更新表格。我创建了一个EnumExtension类,并创建了一个方法,将我的Enumerable转换为DataTable:
public static DataTable AsDataTable<T>(this IEnumerable<T> data)...
接下来,我开始创建一个方法,该方法应使用BulkCopy将可枚举对象插入或更新到我的表中。目前,它的代码如下:
public void BulkInsertOrUpdate(DatabaseEnum database, IEnumerable<Object> enumerable, string TableName)
{
var connection = this.GetSqlConnection(database);
var transaction = connection.BeginTransaction();
using (var bulkCopy = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, transaction))
{
bulkCopy.BatchSize = 100;
bulkCopy.DestinationTableName = TableName;
try
{
bulkCopy.WriteToServer(enumerable.AsDataTable());
}
catch (Exception)
{
transaction.Rollback();
connection.Close();
}
}
transaction.Commit();
}
(注意:GetSqlConnection方法使用适当的连接字符串创建并打开了我的连接。)
但我不知道如何创建更新功能。有没有一种简单有效的代码方式可以实现?虽然我喜欢BulkCopy,但我也可以尝试其他方法,希望不会影响我的架构(如果找不到其他方法,最终我将不得不做出这个牺牲)。
感谢您的关注,我准备回答关于我的情况的疑问。