我有两张桌子:
汽车:
car_id(pk),
color,
model
price
和 CarDetail :
cardetail_id,
car_id(fk),
owner_name
我目前同时插入2个寄存器,先是Car
,然后我恢复汽车标识,然后插入Car_detail
插入
public void insert(Car car)
{
insert(car)....
var identityCar = select last identity from sql..
var carDetail = new CarDetail();
carDetail.carId = identityCar;
carDetail.owner_name = "terminator";
insertDetail(carDetail);
}
但是现在我需要从Excel文件中插入1000条汽车记录,我将数据从Excel传递到列表并将记录插入到foreach但是它需要太长时间且性能缓慢...因此我想使用BulkCopy,我将Excel数据传递给数据表插入
using (var connection = new SqlConnection(URL_DATASOURCE))
{
connection.Open();
SqlBulkCopy sqlBulk = new SqlBulkCopy(connection);
sqlBulk.DestinationTableName = "Car";
sqlBulk.WriteToServer(dataTableCars);
}
这个工作完美但它会插入所有记录,我需要恢复每个记录的身份才能插入汽车细节:/
有什么想法吗?