具有实体框架的频繁,高容量的INSERTS

时间:2017-08-02 20:47:43

标签: sql entity-framework ef-code-first bulkinsert

我需要经常使用EF将大量行放入表中。我的代码示例:

        foreach (InboundEventDto newEvent in newEvents) // array of ~300 events, every ~10 seconds
            {
               AppEvent dbEvent = new AppEvent
                {
                    UserId = user.UserId,
                    EventType = newEvent.EventType,
                    // etc
                };
                eventsToSave.Add(dbEvent);
            }
            _db.Configuration.AutoDetectChangesEnabled = false;
            _db.AppEvents.AddRange(eventsToSave);
            _db.SaveChanges();
            _db.Configuration.AutoDetectChangesEnabled = true;
        }

然而,在引擎盖下,AddRange执行300个INSERTS个人,这是非常慢的。我需要检索添加的ID,这些ID引用的库似乎无法处理。那里有什么(免费的)可以让我:

  1. 以高音量+频率插入,无需单独插入
  2. 在批量插入
  3. 后捕获添加的ID

    编辑以解释这不是重复:再次,寻找一个返回插入的ID的免费解决方案

0 个答案:

没有答案