如何使用EF Code First有效地初始化大种子?

马克·温兹

我们将EF Code First与SQL Server配合使用,并且拥有大量的主数据(约150.000条记录),在创建数据库时必须对其进行初始化。如果可以使用Seeddb-intializer方法完成此操作,将很方便

我已经生成了初始化此数据的SQL脚本。该脚本由几行组成,其中每一行包含一千条记录的INSERT操作。原因是INSERT命令在一个命令中最多只能有1000条记录。

因此,脚本类似于以下内容:

INSERT INTO MyTable (A, B, C) VALUES (1, 2, 3), (2, 3, 4), ... 1000 records here ... (3, 4, 5);
INSERT INTO MyTable (A, B, C) VALUES (4, 5, 6), (5, 6, 7), ... 1000 records here ... (6, 7, 8);
.... 150 lines

我们Seed方法的初始化部分如下所示:

foreach (string command in File.ReadAllLines("InsertMasterData.sql"))
{
    context.Database.ExecuteSqlCommand(command);
}

但是,在使用SQL LocalDB实例的开发人员机器上,这几乎需要2分钟(在生产环境中使用成熟的SQL Server上可能会更快,但是使用LocalDB进行开发很方便)。

有什么办法可以使速度更快吗?

周先生

我们在播种脚本时也遇到类似的情况。这是我们的代码。您不需要使用异步方法。它可以在几秒钟内在本地播种约35,000条记录。

foreach (string file in files)
            {
                var fileInfo = new FileInfo(file);

                Console.WriteLine("Running script {0}", fileInfo.Name);

                string text = fileInfo.OpenText().ReadToEnd();

                using (var conn = new SqlConnection(connectionString))
                {
                    using (var cmd = new SqlCommand(text, conn))
                    {
                        conn.Open();

                        await cmd.ExecuteNonQueryAsync();
                    }
                }
            }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Java中有效地使用常量值初始化数组

如何在Julia中有效地初始化巨大的稀疏数组?

如何使用csv文件有效地在iOS / Core Data应用程序中初始化数据?

Dart:如何有效地初始化依赖于同一计算的多个final字段?

是否可以有效地使用非零值初始化字节数组?

如何有效地使Graphviz图形动画化?

如何使用EF Code First避免外表重复行

使用EF Code First,如何包括嵌套的嵌套数据

如何使用多个值定义 EF Code First 属性

如何使EF有效地调用聚合函数?

如何使用 EF 和 LINQ 更有效地實現相關項

如何在 VS Code 中用标签包装选定的文本并有效地重复操作?

如何使用python Dedupe有效地将记录链接到大表?

如何有效地使用R中的条件进行大组合?

如何有效地语法

有效地使用ConcurrentHashMap?

有效地使用parfor

有效地初始化Cython Memoryview

如何有效地从Rails的大表中获取所有行?

如何使用组有效地控制键控键盘中的规范化?

如何使用 EF Core Code First 创建具有子类别的类别表

如何有效地跳到大日志中的特定时间?

如何有效地将大型rdd加入非常大的rdd中?

如何有效地将大图像分成几个部分并旋转?

如何有效地为列表中的大data.frame对象子集?

如何在大代码目录中有效地搜索字符串列表

如何有效地创建一大堆不同的UUID?

如何有效地加载离子中的大列表?

如何在R中有效地对大整数向量进行分类