0

我用 linq 读取 xml 文件并创建对象列表。

 StringReader stream=new StringReader(xml);
 XmlTextReader reader=new XmlTextReader(stream);

XElement req = XElement.Load(reader);
var users= (req.Descendants("Report")
           .Select(e => new { 
            Fname= e.Descendants("firstName").FirstOrDefault().Value,
            Lname = e.Descendants("lastName").FirstOrDefault().Value,
            personalId = e.Descendants("id").FirstOrDefault().Value,
            })).ToList();

用户价值包括 100,000 个对象。

我想将这些对象批量插入数据库表中。

4

1 回答 1

1
public static void saveData<T>(ref List<T> list, string destinationTableName, int batchSize)
{
    using (EntityDataReader<T> reader = new EntityDataReader<T>(list))
    using (System.Data.SqlClient.SqlBulkCopy sbc = new System.Data.SqlClient.SqlBulkCopy("your connection string"))
    {
        for (int i = 0; i < reader.FieldCount; i++)
        {
            string colName = reader.GetName(i);
            sbc.ColumnMappings.Add(colName, colName);
        }
        sbc.BatchSize = batchSize;
        sbc.DestinationTableName = destinationTableName;
        sbc.WriteToServer(reader);
    }
}

我正在使用此代码插入一个非常大的项目列表,T 应该是一个已知的实体对象

于 2013-07-11T07:05:24.237 回答