为什么我在edmx中达到了79个表的硬限制?

时间:2014-04-29 15:55:35

标签: visual-studio-2012 entity-framework-4

我的团队有一个Oracle数据库,包含大约100个表和30个左右的视图。几个星期前,我们注意到从数据库向我们的实体框架数据模型添加了一个新表(通过EDMX设计器,从数据库向导更新模型),更新暂停了 - 有几次它在大约15分钟后返回,但更常见的是我们杀死了Visual Studio或中止了更新。

我已经尝试过,看看能不能解决这个问题。我删除了旧图表和所有模型实体。我创建了一个新图表,并开始添加表格 - 首先,一次添加一个表格,然后一次添加3,4或5个表格。第一次添加大约需要15秒才能生成模型。

Loading metadata from the database took 00:00:00.5137297.
Generating the model took 00:00:14.8504157.

每个后续添加(多1-5个表)花了几秒钟。

Loading metadata from the database took 00:00:00.5682151.
Generating the model took 00:00:17.2365107.

Loading metadata from the database took 00:00:00.5065684.
Generating the model took 00:00:18.1086428.

在大约75张桌子上,添加另外两张桌子大约需要30秒。

Loading metadata from the database took 00:00:00.5524721.
Generating the model took 00:00:30.5682269.

在表号80处,有一个明确的断点。尝试添加第80个表会导致设计器无限期挂起。我必须杀死向导并中止添加。

我已经尝试删除其他表格,然后添加新表格,特定表格似乎并不重要 - 这都与数字有关。

更奇怪的是我可以添加视图 - 它们似乎不计入这80个表的限制。

任何人都知道发生了什么事?

(我唯一的猜测是一些配置设置 - 连接池限制等等。但我找不到任何显示'80'的东西。)

技术:

Visual Studio Pro 2012。

system.data.entity.dll,runtime v4.0.30319,版本4.0.0.0。

EntityFramework.dll运行时版本v4.0.30319,版本5.0.0.0(< - 这是不匹配的吗?)

1 个答案:

答案 0 :(得分:1)

我不知道EF有任何正式记录的表格限制。但我肯定会认为这个数据库很大,试图加载edmx可能会因内存原因而崩溃。关于SO的问题很多类似于hereherehere

并且您可能应该通过所有解决方案找到适合您的工作,例如this