c# - 是否已知代码优先 EF 无法与包含大量 DbSet 的 DbContext 一起使用?

标签 c# entity-framework ef-code-first

我希望得到一些快速的建议,只是告诉我天气我应该怀疑 (a) 我做错了什么,或者 (b) 我正在尝试做一些不受支持的事情。

我使用 QuickBooks 中的表为 DbContext 生成了代码。它有许多我永远不会使用的 table ,但我认为它不会造成伤害。

在对 Customer 表进行一次插入后尝试调用 SaveChanges() 之前,一切都很顺利。我的测试用例成功了,但他的运行时间在 1 到 2 分钟之间。

然后我删除了除 Customer 表和两个相关表之外的所有表,同样的测试在 2 毫秒内成功。

令我惊讶的是, Entity Framework 无法在一个上下文中处理数百个表,所以我认为我可能做错了什么。如果不是这种情况,我只想了解一下。我不是在提示 - 我实际上并不需要那么多。

有人认为我可能会在正常场景之外做我正在做的事情,因为我在一个巨大的迁移中添加了所有表。那些二进制迁移对象是否会在运行时被引用?

这是我所指的 DbContext 的完整代码:https://gist.github.com/4677208

最佳答案

第一次运行前有数据库吗?

我假设,在您的数据库第一次生成时调用 SaveChanges(),如果在您的 Seed 方法或其他地方有很多表和/或一些复杂的逻辑或大量数据传输初始化时可能需要一些时间。

因此,很可能不仅要插入一个客户,而且要生成整个东西都需要很多时间。

尝试在您 promise 第一个客户后添加另一个客户,看看需要多长时间。

关于c# - 是否已知代码优先 EF 无法与包含大量 DbSet 的 DbContext 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14614332/

相关文章:

c# - Entity Framework 推断关系

database - 首先将 Oracle 与 EF 代码结合使用

c# - 拥有带有私有(private)访问器的公共(public)领域是否有意义?

c# - 在 C# 中将指向结构的指针作为函数参数传递

c# - 使用 Entity Framework 6.0 在 gridView 中显示 Table 的特定列

mysql - EF6 MySQL : Update-Database -Script generates SQL without semicolon

entity-framework - Entity Framework 代码中的增量数据库开发

c# - 在 C# 中重绘气球提示和工具提示?

c# - Webdriver - Webdriver MoveToElement 在 IE 和 Firefox 中无法获取文本工具提示

c# - Entity Framework 中 DataGrid (WPF) 的优雅过滤