gpt4 book ai didi

entity-framework - EntityFramework.BulkInsert 问题插入到数据库中

转载 作者:行者123 更新时间:2023-12-04 08:36:09 25 4
gpt4 key购买 nike

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

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

对于一个复杂的例子,这里是代码:

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”的表,这是我们遇到的问题:

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 社区中的某个人对我们遇到此问题的原因有任何想法。

最佳答案

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

关于entity-framework - EntityFramework.BulkInsert 问题插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25510197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com