首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EntityFramework.BulkInsert插入到数据库时出现问题

EntityFramework.BulkInsert插入到数据库时出现问题
EN

Stack Overflow用户
提问于 2014-08-26 23:58:05
回答 2查看 3.7K关注 0票数 3

我正在尝试使用EntityFramework.BulkInsert库来利用EF6和SqlBulkCopy。

文档看起来非常简单,但是,我无法将任何数据填充到数据库中。

对于一个复杂的例子,下面是代码:

代码语言:javascript
复制
public void WriteChunkNoAsync(int chunkCount, bool forceSave = false)
{
    Chunking.Entities.Add(this);
    if (forceSave || Chunking.Entities.Count % chunkCount == 0)
    {
        using (var db = new FlatESContainer())
        {
            //db.Entity.AddRange(Chunking.Entities); //This will work
            db.BulkInsert(Chunking.Entities);
            Chunking.Entities = new List<Entity>();
            db.SaveChanges();
        }
    }
}

这段代码基本上会插入到全局列表中,直到列表计数被chunckCount整除为止。

AddRange函数工作得很好。因此,我们决定创建一个非常简单的数据库,只有一个名为"Test“的表,下面是我们遇到的问题:

代码语言:javascript
复制
List<Test> tests = new List<Test>();
for (int i = 0; i < 1000; i++)
{
    tests.Add(new Test());
}

using (var context = new SimpleContainer())
{
    //This works fine
    context.Tests.AddRange(tests);
    //This causes an exception: Type 'TestSimpleDatabase.Test' is not found in context 'TestSimpleDatabase.SimpleContainer'
    context.BulkInsert(tests);
    context.SaveChanges();
}

我相信这是两个独立的问题,但也许stackoverflow社区中的某些人知道为什么我们会有这个问题。

EN

回答 2

Stack Overflow用户

发布于 2014-08-27 09:12:06

因此,在尝试解决问题一段时间后,解决方案相当简单。同样的规则也适用于必须插入每个表的SqlBulkCopy,而不仅仅是引用了其他表的表(通过外键)。不过速度非常快!

票数 1
EN

Stack Overflow用户

发布于 2014-08-27 02:02:47

我能够通过创建一个Code First EF6项目来解决这个问题。这是一个解决方案,但模型优先将是很好的。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25510197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档