如何为每个迭代批量插入获取标识值

时间:2017-04-21 08:38:58

标签: c# performance entity-framework primary-key ef-bulkinsert

List< IletisimLog> bulkInsertIletisimLog = new List<IletisimLog>();
//there are 1000 values in the array of paramaters
foreach (var kId in paramaters)
{     
    var iletisimLogInsert = new IletisimLog()
    {
        KullaniciID = kId.KullaniciId,
        EklendigiTarih = DateTime.Now,
        GonderildigiTarih = DateTime.Now,
        BilgilendirmeTurID = bilgilendirmeturId,
    };
    bulkInsertIletisimLog.Add(iletisimLogInsert);

}
_iLetisimLogService.BulkInsertRange(bulkInsertIletisimLog);

数据库中注册了1000条记录。如何获取每条记录的主键值

1 个答案:

答案 0 :(得分:0)

当您遍历实体以将它们添加到数据库时,如果其中存在主键,则分配给每个实体的ID将反映在对象中。

List< IletisimLog> bulkInsertIletisimLog = new List<IletisimLog>();
//there are 1000 values in the array of paramaters
foreach (var kId in paramaters)
{     
    var iletisimLogInsert = new IletisimLog()
    {
        KullaniciID = kId.KullaniciId,
        EklendigiTarih = DateTime.Now,
        GonderildigiTarih = DateTime.Now,
        BilgilendirmeTurID = bilgilendirmeturId,
    };
    bulkInsertIletisimLog.Add(iletisimLogInsert);    
}

_iLetisimLogService.BulkInsertRange(bulkInsertIletisimLog);

foreach (var inserted in bulkInsertIletisimLog)
{
    // Get the ID of the inserted object
    var newId = inserted.Id;
}

假设您的对象的主键值称为Id